Ryujinx/Ryujinx.Graphics.Shader
riperiperi f23b2878cc
Shader: Add fallback for LDG from "ube" buffer ranges. (#4027)
We have a conversion from LDG on the compute shader to a special constant buffer binding that's used to exceed hardware limits on compute, but it was only running if the byte offset could be identified. The fallback that checks all of the bindings at runtime only checks the storage buffers.

This PR adds checking ube ranges to the LoadGlobal fallback. This extends the changes in #4011 to only check ube entries which are accessed by the shader.

Fixes particles affected by the wind in The Legend of Zelda: Breath of the Wild. May fix other weird issues with compute shaders in some games.

Try a bunch of games and drivers to make sure they don't blow up loading constants willynilly from searchable buffers.
2022-12-06 23:15:44 +00:00
..
CodeGen Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Decoders Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Instructions Move gl_Layer from vertex to geometry if GPU does not support it on vertex (#3866) 2022-11-18 23:27:54 -03:00
IntermediateRepresentation Fix bindless 1D textures having a buffer type on the shader (#3697) 2022-09-13 08:53:55 +02:00
StructuredIr Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Translation Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
AlphaTestOp.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
AttributeType.cs Use RGBA16 vertex format if RGB16 is not supported on Vulkan (#3552) 2022-08-20 16:20:27 -03:00
BufferDescriptor.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
BufferUsageFlags.cs Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790) 2021-01-17 17:08:06 -03:00
Constants.cs GPU: Eliminate CB0 accesses when storage buffer accesses are resolved (#3847) 2022-11-17 18:47:41 +01:00
IGpuAccessor.cs Allow SNorm buffer texture formats on Vulkan (#3957) 2022-12-04 15:36:03 -03:00
InputTopology.cs Implement VMAD shader instruction and improve InvocationInfo and ISBERD handling (#3251) 2022-04-08 12:42:39 +02:00
OutputTopology.cs Support texture rectangle targets (non-normalized coords) 2020-01-09 02:13:00 +01:00
Ryujinx.Graphics.Shader.csproj infra: Migrate to .NET 7 (#3795) 2022-11-09 20:22:43 +01:00
SamplerType.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ShaderProgram.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ShaderProgramInfo.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
ShaderStage.cs Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
SupportBuffer.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
TessPatchType.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
TessSpacing.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
TextureDescriptor.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
TextureFormat.cs Removed extra semicolons. (#3594) 2022-08-17 09:05:15 +02:00
TextureHandle.cs Allow bindless textures with handles from unbound constant buffer (#3706) 2022-09-19 15:35:47 -03:00
TextureUsageFlags.cs Add support for fragment shader interlock (#2768) 2021-10-28 19:53:12 -03:00