aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs89
1 files changed, 0 insertions, 89 deletions
diff --git a/Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs b/Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs
deleted file mode 100644
index fca13c31..00000000
--- a/Ryujinx.Graphics.Vulkan/PersistentFlushBuffer.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using System;
-
-namespace Ryujinx.Graphics.Vulkan
-{
- internal class PersistentFlushBuffer : IDisposable
- {
- private VulkanRenderer _gd;
-
- private BufferHolder _flushStorage;
-
- public PersistentFlushBuffer(VulkanRenderer gd)
- {
- _gd = gd;
- }
-
- private BufferHolder ResizeIfNeeded(int size)
- {
- var flushStorage = _flushStorage;
-
- if (flushStorage == null || size > _flushStorage.Size)
- {
- if (flushStorage != null)
- {
- flushStorage.Dispose();
- }
-
- flushStorage = _gd.BufferManager.Create(_gd, size);
- _flushStorage = flushStorage;
- }
-
- return flushStorage;
- }
-
- public Span<byte> GetBufferData(CommandBufferPool cbp, BufferHolder buffer, int offset, int size)
- {
- var flushStorage = ResizeIfNeeded(size);
-
- using (var cbs = cbp.Rent())
- {
- var srcBuffer = buffer.GetBuffer(cbs.CommandBuffer);
- var dstBuffer = flushStorage.GetBuffer(cbs.CommandBuffer);
-
- BufferHolder.Copy(_gd, cbs, srcBuffer, dstBuffer, offset, 0, size);
- }
-
- flushStorage.WaitForFences();
- return flushStorage.GetDataStorage(0, size);
- }
-
- public Span<byte> GetTextureData(CommandBufferPool cbp, TextureView view, int size)
- {
- GAL.TextureCreateInfo info = view.Info;
-
- var flushStorage = ResizeIfNeeded(size);
-
- using (var cbs = cbp.Rent())
- {
- var buffer = flushStorage.GetBuffer(cbs.CommandBuffer).Get(cbs).Value;
- var image = view.GetImage().Get(cbs).Value;
-
- view.CopyFromOrToBuffer(cbs.CommandBuffer, buffer, image, size, true, 0, 0, info.GetLayers(), info.Levels, singleSlice: false);
- }
-
- flushStorage.WaitForFences();
- return flushStorage.GetDataStorage(0, size);
- }
-
- public Span<byte> GetTextureData(CommandBufferPool cbp, TextureView view, int size, int layer, int level)
- {
- var flushStorage = ResizeIfNeeded(size);
-
- using (var cbs = cbp.Rent())
- {
- var buffer = flushStorage.GetBuffer(cbs.CommandBuffer).Get(cbs).Value;
- var image = view.GetImage().Get(cbs).Value;
-
- view.CopyFromOrToBuffer(cbs.CommandBuffer, buffer, image, size, true, layer, level, 1, 1, singleSlice: true);
- }
-
- flushStorage.WaitForFences();
- return flushStorage.GetDataStorage(0, size);
- }
-
- public void Dispose()
- {
- _flushStorage.Dispose();
- }
- }
-}