diff options
author | bunnei <bunneidev@gmail.com> | 2018-06-07 03:38:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-07 03:38:22 +0200 |
commit | 4732e1f0644c2842f5548855085923a42fc95027 (patch) | |
tree | 43c6d72726e87ad9ff411ef04ad119cf0bda8093 | |
parent | Merge pull request #534 from Subv/multitexturing (diff) | |
parent | gl_shader_decompiler: Implement ISETP_IMM instruction. (diff) | |
download | yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar.gz yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar.bz2 yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar.lz yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar.xz yuzu-4732e1f0644c2842f5548855085923a42fc95027.tar.zst yuzu-4732e1f0644c2842f5548855085923a42fc95027.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 17 |
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: } case OpCode::Type::IntegerSetPredicate: { std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed); + std::string op_b; - std::string op_b{}; - - ASSERT_MSG(!instr.is_b_imm, "ISETP_IMM not implemented"); - - if (instr.is_b_gpr) { - op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed); + if (instr.is_b_imm) { + op_b += '(' + std::to_string(instr.alu.GetSignedImm20_20()) + ')'; } else { - op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset, - GLSLRegister::Type::Integer); + if (instr.is_b_gpr) { + op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed); + } else { + op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset, + GLSLRegister::Type::Integer); + } } using Tegra::Shader::Pred; |