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
CounterEvent
Program
Renderer New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
Sampler
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
BeginTransformFeedbackCommand.cs
ClearBufferCommand.cs
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
CopyBufferCommand.cs
DispatchComputeCommand.cs
DrawCommand.cs
DrawIndexedCommand.cs
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
EndTransformFeedbackCommand.cs
IGALCommand.cs
SetAlphaTestCommand.cs
SetBlendStateCommand.cs
SetDepthBiasCommand.cs
SetDepthClampCommand.cs
SetDepthModeCommand.cs
SetDepthTestCommand.cs
SetFaceCullingCommand.cs
SetFrontFaceCommand.cs
SetImageCommand.cs
SetIndexBufferCommand.cs
SetLineParametersCommand.cs
SetLogicOpStateCommand.cs
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
SetPolygonModeCommand.cs
SetPrimitiveRestartCommand.cs
SetPrimitiveTopologyCommand.cs
SetProgramCommand.cs
SetRasterizerDiscardCommand.cs
SetRenderTargetColorMasksCommand.cs
SetRenderTargetScaleCommand.cs
SetRenderTargetsCommand.cs
SetScissorsCommand.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
SetStencilTestCommand.cs
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
SetUniformBuffersCommand.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
SetUserClipDistanceCommand.cs
SetVertexAttribsCommand.cs
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
TextureBarrierTiledCommand.cs
TryHostConditionalRenderingCommand.cs
TryHostConditionalRenderingFlushCommand.cs
UpdateRenderScaleCommand.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00