Ryujinx/Ryujinx.Graphics.GAL
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
..
Multithreading GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
AddressMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendDescriptor.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
BlendFactor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendOp.cs Fix incorrect GPU GL blend func values (#1612) 2020-10-13 14:45:41 +11:00
BufferAssignment.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
BufferHandle.cs Spanify Graphics Abstraction Layer (#1226) 2020-05-23 11:46:09 +02:00
BufferRange.cs Fix transform feedback errors caused by host pause/resume and multiple uses (#1634) 2020-10-25 17:23:42 -03:00
Capabilities.cs Move gl_Layer from vertex to geometry if GPU does not support it on vertex (#3866) 2022-11-18 23:27:54 -03:00
ColorF.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
CompareMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
CompareOp.cs Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2020-01-09 02:13:00 +01:00
CounterType.cs Initial work 2020-01-09 02:13:00 +01:00
DepthMode.cs Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2020-01-09 02:13:00 +01:00
DepthStencilMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DepthTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DeviceInfo.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Extents2D.cs Allow copy destination to have a different scale from source (#1711) 2020-11-20 17:14:45 -03:00
Extents2DF.cs Implement DrawTexture functionality (#2747) 2021-11-10 15:37:49 -03:00
Face.cs Initial work 2020-01-09 02:13:00 +01:00
Format.cs Restride vertex buffer when stride causes attributes to misalign in Vulkan. (#3679) 2022-09-08 20:30:19 -03:00
FrontFace.cs Initial work 2020-01-09 02:13:00 +01:00
HardwareInfo.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
ICounterEvent.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ImageCrop.cs Force crop when presentation cached texture size mismatches (#2957) 2021-12-31 12:00:42 -03:00
IndexType.cs Initial work 2020-01-09 02:13:00 +01:00
IPipeline.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
IProgram.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
IRenderer.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
ISampler.cs Initial work 2020-01-09 02:13:00 +01:00
ITexture.cs GPU: Pass SpanOrArray for Texture SetData to avoid copy (#3745) 2022-10-08 12:04:47 -03:00
IWindow.cs Avalonia - Use embedded window for avalonia (#3674) 2022-09-19 15:05:26 -03:00
LogicalOp.cs Implement Logical Operation registers and functionality (#1380) 2020-07-10 14:23:15 -03:00
MagFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MinFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MultisampleDescriptor.cs Add support for alpha to coverage dithering (#3069) 2022-07-05 19:58:36 -03:00
Origin.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00
PolygonMode.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
PolygonModeMask.cs Initial work 2020-01-09 02:13:00 +01:00
PrimitiveTopology.cs Initial work 2020-01-09 02:13:00 +01:00
ProgramLinkStatus.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
ProgramPipelineState.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00
Rectangle.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Ryujinx.Graphics.GAL.csproj infra: Migrate to .NET 7 (#3795) 2022-11-09 20:22:43 +01:00
SamplerCreateInfo.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ScreenCaptureImageInfo.cs Add Screenshot Feature (#2354) 2021-06-28 22:09:43 +02:00
ShaderBindings.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ShaderInfo.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ShaderSource.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
StencilOp.cs Add alternative "GL" enum values for StencilOp (#3321) 2022-05-05 21:16:58 +02:00
StencilTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
SupportBufferUpdater.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00
SwizzleComponent.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Target.cs Copy dependency for multisample and non-multisample textures (#3382) 2022-06-05 14:06:47 -03:00
TextureCreateInfo.cs Clamp number of mipmap levels to avoid API errors due to invalid textures (#2808) 2021-11-03 20:58:24 -03:00
TextureReleaseCallback.cs Initial work 2020-01-09 02:13:00 +01:00
VertexAttribDescriptor.cs Avoid some redundant GL calls (#1958) 2021-01-27 08:44:07 +11:00
VertexBufferDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Viewport.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ViewportSwizzle.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00