diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs b/src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs index 91e7ace1..8167efc1 100644 --- a/src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs +++ b/src/Ryujinx.Graphics.Shader/Translation/Rewriter.cs @@ -110,9 +110,9 @@ namespace Ryujinx.Graphics.Shader.Translation Operand BindingRangeCheck(int cbOffset, out Operand baseAddrLow) { - baseAddrLow = Cbuf(0, cbOffset); - Operand baseAddrHigh = Cbuf(0, cbOffset + 1); - Operand size = Cbuf(0, cbOffset + 2); + baseAddrLow = Cbuf(DriverReservedCb, cbOffset); + Operand baseAddrHigh = Cbuf(DriverReservedCb, cbOffset + 1); + Operand size = Cbuf(DriverReservedCb, cbOffset + 2); Operand offset = PrependOperation(Instruction.Subtract, addrLow, baseAddrLow); Operand borrow = PrependOperation(Instruction.CompareLessU32, addrLow, baseAddrLow); @@ -134,9 +134,10 @@ namespace Ryujinx.Graphics.Shader.Translation sbUseMask &= ~(1 << slot); - config.SetUsedStorageBuffer(slot, isWrite); - int cbOffset = GetStorageCbOffset(config.Stage, slot); + slot = config.GetSbSlot(DriverReservedCb, (ushort)cbOffset); + + config.SetUsedStorageBuffer(slot, isWrite); Operand inRange = BindingRangeCheck(cbOffset, out Operand baseAddrLow); |