GreemDev-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
BlendDescriptor.cs
BlendFactor.cs
BlendOp.cs
BufferAssignment.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
BufferHandle.cs
BufferRange.cs
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
CompareMode.cs
CompareOp.cs
CounterType.cs
DepthMode.cs
DepthStencilMode.cs
DepthTestDescriptor.cs
DeviceInfo.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Extents2D.cs
Extents2DF.cs Implement DrawTexture functionality (#2747) 2021-11-10 15:37:49 -03:00
Face.cs
Format.cs Restride vertex buffer when stride causes attributes to misalign in Vulkan. (#3679) 2022-09-08 20:30:19 -03:00
FrontFace.cs
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
IPipeline.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
IProgram.cs
IRenderer.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
ISampler.cs
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
MagFilter.cs
MinFilter.cs
MultisampleDescriptor.cs Add support for alpha to coverage dithering (#3069) 2022-07-05 19:58:36 -03:00
Origin.cs
PolygonMode.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
PolygonModeMask.cs
PrimitiveTopology.cs
ProgramLinkStatus.cs
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
SupportBufferUpdater.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00
SwizzleComponent.cs
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
VertexAttribDescriptor.cs
VertexBufferDescriptor.cs
Viewport.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ViewportSwizzle.cs