diff options
Diffstat (limited to 'Ryujinx.Graphics.GAL/Multithreading/Commands')
-rw-r--r-- | Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs | 18 | ||||
-rw-r--r-- | Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs (renamed from Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndexedIndirectCountCommand.cs) | 8 | ||||
-rw-r--r-- | Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs | 18 | ||||
-rw-r--r-- | Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs (renamed from Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndirectCountCommand.cs) | 8 |
4 files changed, 44 insertions, 8 deletions
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs new file mode 100644 index 00000000..3a47e962 --- /dev/null +++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs @@ -0,0 +1,18 @@ +namespace Ryujinx.Graphics.GAL.Multithreading.Commands +{ + struct DrawIndexedIndirectCommand : IGALCommand + { + public CommandType CommandType => CommandType.DrawIndexedIndirect; + private BufferRange _indirectBuffer; + + public void Set(BufferRange indirectBuffer) + { + _indirectBuffer = indirectBuffer; + } + + public static void Run(ref DrawIndexedIndirectCommand command, ThreadedRenderer threaded, IRenderer renderer) + { + renderer.Pipeline.DrawIndexedIndirect(threaded.Buffers.MapBufferRange(command._indirectBuffer)); + } + } +} diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndexedIndirectCountCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs index 6798f8cc..79d9792e 100644 --- a/Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndexedIndirectCountCommand.cs +++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs @@ -1,8 +1,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { - struct MultiDrawIndexedIndirectCountCommand : IGALCommand + struct DrawIndexedIndirectCountCommand : IGALCommand { - public CommandType CommandType => CommandType.MultiDrawIndexedIndirectCount; + public CommandType CommandType => CommandType.DrawIndexedIndirectCount; private BufferRange _indirectBuffer; private BufferRange _parameterBuffer; private int _maxDrawCount; @@ -16,9 +16,9 @@ _stride = stride; } - public static void Run(ref MultiDrawIndexedIndirectCountCommand command, ThreadedRenderer threaded, IRenderer renderer) + public static void Run(ref DrawIndexedIndirectCountCommand command, ThreadedRenderer threaded, IRenderer renderer) { - renderer.Pipeline.MultiDrawIndexedIndirectCount( + renderer.Pipeline.DrawIndexedIndirectCount( threaded.Buffers.MapBufferRange(command._indirectBuffer), threaded.Buffers.MapBufferRange(command._parameterBuffer), command._maxDrawCount, diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs new file mode 100644 index 00000000..73414e44 --- /dev/null +++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs @@ -0,0 +1,18 @@ +namespace Ryujinx.Graphics.GAL.Multithreading.Commands +{ + struct DrawIndirectCommand : IGALCommand + { + public CommandType CommandType => CommandType.DrawIndirect; + private BufferRange _indirectBuffer; + + public void Set(BufferRange indirectBuffer) + { + _indirectBuffer = indirectBuffer; + } + + public static void Run(ref DrawIndirectCommand command, ThreadedRenderer threaded, IRenderer renderer) + { + renderer.Pipeline.DrawIndirect(threaded.Buffers.MapBufferRange(command._indirectBuffer)); + } + } +} diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndirectCountCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs index 7a9d07f3..96f60f4a 100644 --- a/Ryujinx.Graphics.GAL/Multithreading/Commands/MultiDrawIndirectCountCommand.cs +++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs @@ -1,8 +1,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { - struct MultiDrawIndirectCountCommand : IGALCommand + struct DrawIndirectCountCommand : IGALCommand { - public CommandType CommandType => CommandType.MultiDrawIndirectCount; + public CommandType CommandType => CommandType.DrawIndirectCount; private BufferRange _indirectBuffer; private BufferRange _parameterBuffer; private int _maxDrawCount; @@ -16,9 +16,9 @@ _stride = stride; } - public static void Run(ref MultiDrawIndirectCountCommand command, ThreadedRenderer threaded, IRenderer renderer) + public static void Run(ref DrawIndirectCountCommand command, ThreadedRenderer threaded, IRenderer renderer) { - renderer.Pipeline.MultiDrawIndirectCount( + renderer.Pipeline.DrawIndirectCount( threaded.Buffers.MapBufferRange(command._indirectBuffer), threaded.Buffers.MapBufferRange(command._parameterBuffer), command._maxDrawCount, |