Ryujinx/Ryujinx.Graphics.Shader/Translation
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
..
Optimizations Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
AggregateType.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
AttributeConsts.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
AttributeInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ControlFlowGraph.cs Rewrite shader decoding stage (#2698) 2021-10-12 22:35:31 +02:00
Dominance.cs Rewrite shader decoding stage (#2698) 2021-10-12 22:35:31 +02:00
EmitterContext.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
EmitterContextInsts.cs Implement remaining shader double-precision instructions (#2845) 2021-12-08 17:54:12 -03:00
FeatureFlags.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
FunctionMatch.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
GlobalMemory.cs Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
RegisterUsage.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Rewriter.cs Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
ShaderConfig.cs Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
ShaderHeader.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Ssa.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TargetApi.cs Allow shader language and target API to be specified on the shader translator (#2402) 2021-07-06 21:20:06 +02:00
TargetLanguage.cs shadertools: Prepare for new target Languages and APIs (#2465) 2021-07-18 12:49:39 +02:00
TranslationFlags.cs Stop using glTransformFeedbackVaryings and use explicit layout on the shader (#3012) 2022-01-21 12:35:21 -03:00
TranslationOptions.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Translator.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TranslatorContext.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