Ryujinx/Ryujinx.Graphics.GAL/Multithreading/Commands
riperiperi ece36b274d
GAL: Send all buffer assignments at once rather than individually (#3881)
* GAL: Send all buffer assignments at once rather than individually

The `(int first, BufferRange[] ranges)` method call has very significant performance implications when the bindings are spread out, which they generally always are in Vulkan. This change makes it so that these methods are only called a maximum of one time per draw.

Significantly improves GPU thread performance in Pokemon Scarlet/Violet.

* Address Feedback

Removed SetUniformBuffers(int first, ReadOnlySpan<BufferRange> buffers)
2022-11-24 07:50:59 +00:00
..
Buffer Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
CounterEvent Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
Program Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
Renderer New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
Sampler Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
Texture Fast path for Inline-to-Memory texture data transfers (#3610) 2022-08-26 02:16:41 +00:00
Window Avalonia - Use embedded window for avalonia (#3674) 2022-09-19 15:05:26 -03:00
BarrierCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
BeginTransformFeedbackCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ClearBufferCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ClearRenderTargetColorCommand.cs Implement HLE macros for render target clears (#3528) 2022-08-04 21:30:08 +00:00
ClearRenderTargetDepthStencilCommand.cs Implement HLE macros for render target clears (#3528) 2022-08-04 21:30:08 +00:00
CommandBufferBarrierCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
CopyBufferCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
DispatchComputeCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
DrawCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
DrawIndexedCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
DrawIndexedIndirectCommand.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
DrawIndexedIndirectCountCommand.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
DrawIndirectCommand.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
DrawIndirectCountCommand.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
DrawTextureCommand.cs Implement DrawTexture functionality (#2747) 2021-11-10 15:37:49 -03:00
EndHostConditionalRenderingCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
EndTransformFeedbackCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
IGALCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetAlphaTestCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetBlendStateCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetDepthBiasCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetDepthClampCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetDepthModeCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetDepthTestCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetFaceCullingCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetFrontFaceCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetImageCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetIndexBufferCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetLineParametersCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetLogicOpStateCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetMultisampleStateCommand.cs Add support for alpha to coverage dithering (#3069) 2022-07-05 19:58:36 -03:00
SetPatchParametersCommand.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00
SetPointParametersCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetPolygonModeCommand.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
SetPrimitiveRestartCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetPrimitiveTopologyCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetProgramCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetRasterizerDiscardCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetRenderTargetColorMasksCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetRenderTargetScaleCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetRenderTargetsCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetScissorsCommand.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
SetStencilTestCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetStorageBuffersCommand.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
SetTextureAndSamplerCommand.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
SetTransformFeedbackBuffersCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetUniformBuffersCommand.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
SetUserClipDistanceCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetVertexAttribsCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
SetVertexBuffersCommand.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
SetViewportsCommand.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
TextureBarrierCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
TextureBarrierTiledCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
TryHostConditionalRenderingCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
TryHostConditionalRenderingFlushCommand.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
UpdateRenderScaleCommand.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00