summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-04-29 19:49:41 +0200
committerSubv <subv2112@gmail.com>2018-04-29 19:49:41 +0200
commitda32c648bfff39ae28ddda6136b9afa46530cf9a (patch)
tree6a0c7db0c07e9b1cc919c1bd017451be5354d2b1 /src/video_core/renderer_opengl/gl_shader_decompiler.cpp
parentMerge pull request #416 from bunnei/shader-ints-p3 (diff)
downloadyuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar.gz
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar.bz2
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar.lz
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar.xz
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.tar.zst
yuzu-da32c648bfff39ae28ddda6136b9afa46530cf9a.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_decompiler.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 27190cc45..96d39c5c7 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -882,6 +882,9 @@ private:
case PredCondition::Equal:
SetPredicate(instr.fsetp.pred3, '(' + op_a + ") == (" + op_b + ')');
break;
+ case PredCondition::LessEqual:
+ SetPredicate(instr.fsetp.pred3, '(' + op_a + ") <= (" + op_b + ')');
+ break;
default:
NGLOG_CRITICAL(HW_GPU, "Unhandled predicate condition: {} (a: {}, b: {})",
static_cast<unsigned>(instr.fsetp.cond.Value()), op_a, op_b);
@@ -933,6 +936,10 @@ private:
regs.SetRegisterToFloat(instr.gpr0, 0,
"((" + op_a + ") == (" + op_b + ")) ? 1.0 : 0", 1, 1);
break;
+ case PredCondition::LessEqual:
+ regs.SetRegisterToFloat(instr.gpr0, 0,
+ "((" + op_a + ") <= (" + op_b + ")) ? 1.0 : 0", 1, 1);
+ break;
case PredCondition::GreaterThan:
regs.SetRegisterToFloat(instr.gpr0, 0,
"((" + op_a + ") > (" + op_b + ")) ? 1.0 : 0", 1, 1);