diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs b/src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs index bb25c160..bf087aff 100644 --- a/src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs +++ b/src/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs @@ -222,8 +222,6 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations private static void SetHandle(ShaderConfig config, TextureOperation texOp, int cbufOffset, int cbufSlot, bool rewriteSamplerType, bool isImage) { - texOp.SetHandle(cbufOffset, cbufSlot); - if (rewriteSamplerType) { SamplerType newType = config.GpuAccessor.QuerySamplerType(cbufOffset, cbufSlot); @@ -234,7 +232,7 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations } else if (texOp.Type == SamplerType.TextureBuffer && newType == SamplerType.Texture1D) { - int coordsCount = 1; + int coordsCount = 2; if (InstEmit.Sample1DAs2D) { @@ -255,7 +253,15 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations } } - config.SetUsedTexture(texOp.Inst, texOp.Type, texOp.Format, texOp.Flags, cbufSlot, cbufOffset); + int binding = config.ResourceManager.GetTextureOrImageBinding( + texOp.Inst, + texOp.Type, + texOp.Format, + texOp.Flags & ~TextureFlags.Bindless, + cbufSlot, + cbufOffset); + + texOp.SetBinding(binding); } } } |