summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 3067ce3b3..b6c6a4607 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -1278,16 +1278,17 @@ private:
1278 } 1278 }
1279 case OpCode::Type::IntegerSetPredicate: { 1279 case OpCode::Type::IntegerSetPredicate: {
1280 std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed); 1280 std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed);
1281 std::string op_b;
1281 1282
1282 std::string op_b{}; 1283 if (instr.is_b_imm) {
1283 1284 op_b += '(' + std::to_string(instr.alu.GetSignedImm20_20()) + ')';
1284 ASSERT_MSG(!instr.is_b_imm, "ISETP_IMM not implemented");
1285
1286 if (instr.is_b_gpr) {
1287 op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed);
1288 } else { 1285 } else {
1289 op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset, 1286 if (instr.is_b_gpr) {
1290 GLSLRegister::Type::Integer); 1287 op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed);
1288 } else {
1289 op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset,
1290 GLSLRegister::Type::Integer);
1291 }
1291 } 1292 }
1292 1293
1293 using Tegra::Shader::Pred; 1294 using Tegra::Shader::Pred;