diff --git a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs index 1989131e3..d96d2b2a6 100644 --- a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs +++ b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs @@ -473,7 +473,7 @@ namespace Ryujinx.Graphics.Gpu.Image ? bufferManager.GetComputeUniformBufferAddress(samplerBufferIndex) : bufferManager.GetGraphicsUniformBufferAddress(stageIndex, samplerBufferIndex); - handle |= _context.PhysicalMemory.Read(samplerBufferAddress + (ulong)((uint)wordOffset >> HandleHigh) * 4); + handle |= _context.PhysicalMemory.Read(samplerBufferAddress + (ulong)((wordOffset >> HandleHigh) - 1) * 4); } return handle; diff --git a/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs b/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs index 6156a6f4a..e66bde0ab 100644 --- a/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs +++ b/Ryujinx.Graphics.Shader/Translation/Optimizations/BindlessElimination.cs @@ -58,7 +58,7 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations SetHandle( config, texOp, - src0.GetCbufOffset() | (src1.GetCbufOffset() << 16), + src0.GetCbufOffset() | ((src1.GetCbufOffset() + 1) << 16), src0.GetCbufSlot() | ((src1.GetCbufSlot() + 1) << 16)); } else if (texOp.Inst == Instruction.ImageLoad || texOp.Inst == Instruction.ImageStore)