diff options
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 4 | ||||
| -rw-r--r-- | src/video_core/shader/decode/arithmetic_integer.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/shader/decode/bfi.cpp | 2 | 
3 files changed, 5 insertions, 5 deletions
| diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 81b6d9eff..955f981bd 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h @@ -1657,11 +1657,11 @@ union Instruction {      } xmad;      union { -        BitField<20, 14, u64> offset; +        BitField<20, 14, u64> shifted_offset;          BitField<34, 5, u64> index;          u64 GetOffset() const { -            return offset * 4; +            return shifted_offset * 4;          }      } cbuf34; diff --git a/src/video_core/shader/decode/arithmetic_integer.cpp b/src/video_core/shader/decode/arithmetic_integer.cpp index e60875cc4..21366869d 100644 --- a/src/video_core/shader/decode/arithmetic_integer.cpp +++ b/src/video_core/shader/decode/arithmetic_integer.cpp @@ -166,13 +166,13 @@ u32 ShaderIR::DecodeArithmeticInteger(NodeBlock& bb, u32 pc) {          const auto [op_rhs, test] = [&]() -> std::pair<Node, Node> {              switch (opcode->get().GetId()) {              case OpCode::Id::ICMP_CR: -                return {GetConstBuffer(instr.cbuf34.index, instr.cbuf34.offset), +                return {GetConstBuffer(instr.cbuf34.index, instr.cbuf34.GetOffset()),                          GetRegister(instr.gpr39)};              case OpCode::Id::ICMP_R:                  return {GetRegister(instr.gpr20), GetRegister(instr.gpr39)};              case OpCode::Id::ICMP_RC:                  return {GetRegister(instr.gpr39), -                        GetConstBuffer(instr.cbuf34.index, instr.cbuf34.offset)}; +                        GetConstBuffer(instr.cbuf34.index, instr.cbuf34.GetOffset())};              case OpCode::Id::ICMP_IMM:                  return {Immediate(instr.alu.GetSignedImm20_20()), GetRegister(instr.gpr39)};              default: diff --git a/src/video_core/shader/decode/bfi.cpp b/src/video_core/shader/decode/bfi.cpp index f992bbe2a..70d1c055b 100644 --- a/src/video_core/shader/decode/bfi.cpp +++ b/src/video_core/shader/decode/bfi.cpp @@ -21,7 +21,7 @@ u32 ShaderIR::DecodeBfi(NodeBlock& bb, u32 pc) {          switch (opcode->get().GetId()) {          case OpCode::Id::BFI_RC:              return {GetRegister(instr.gpr39), -                    GetConstBuffer(instr.cbuf34.index, instr.cbuf34.offset)}; +                    GetConstBuffer(instr.cbuf34.index, instr.cbuf34.GetOffset())};          case OpCode::Id::BFI_IMM_R:              return {Immediate(instr.alu.GetSignedImm20_20()), GetRegister(instr.gpr39)};          default: | 
