summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-08-31 11:20:47 -0400
committerGravatar GitHub2018-08-31 11:20:47 -0400
commite205e74e1f08e2f5d504b0f346f8288b56920bf3 (patch)
treeed4206a055ad5930abab4cb15418d9ddbe2de826 /src
parentMerge pull request #1195 from FearlessTobi/port-gamelist-compat (diff)
parentAdded predicate comparison GreaterEqualWithNan (diff)
downloadyuzu-e205e74e1f08e2f5d504b0f346f8288b56920bf3.tar.gz
yuzu-e205e74e1f08e2f5d504b0f346f8288b56920bf3.tar.xz
yuzu-e205e74e1f08e2f5d504b0f346f8288b56920bf3.zip
Merge pull request #1208 from Hexagon12/pred-comp-14
Add predicate comparison 14 (GreaterEqualWithNan)
Diffstat (limited to 'src')
-rw-r--r--src/video_core/engines/shader_bytecode.h1
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp6
2 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 65e0c469f..3e4efbe0c 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -147,6 +147,7 @@ enum class PredCondition : u64 {
147 LessThanWithNan = 9, 147 LessThanWithNan = 9,
148 GreaterThanWithNan = 12, 148 GreaterThanWithNan = 12,
149 NotEqualWithNan = 13, 149 NotEqualWithNan = 13,
150 GreaterEqualWithNan = 14,
150 // TODO(Subv): Other condition types 151 // TODO(Subv): Other condition types
151}; 152};
152 153
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 842bfa0b7..391c92d47 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -729,8 +729,7 @@ private:
729 {PredCondition::LessEqual, "<="}, {PredCondition::GreaterThan, ">"}, 729 {PredCondition::LessEqual, "<="}, {PredCondition::GreaterThan, ">"},
730 {PredCondition::NotEqual, "!="}, {PredCondition::GreaterEqual, ">="}, 730 {PredCondition::NotEqual, "!="}, {PredCondition::GreaterEqual, ">="},
731 {PredCondition::LessThanWithNan, "<"}, {PredCondition::NotEqualWithNan, "!="}, 731 {PredCondition::LessThanWithNan, "<"}, {PredCondition::NotEqualWithNan, "!="},
732 {PredCondition::GreaterThanWithNan, ">"}, 732 {PredCondition::GreaterThanWithNan, ">"}, {PredCondition::GreaterEqualWithNan, ">="}};
733 };
734 733
735 const auto& comparison{PredicateComparisonStrings.find(condition)}; 734 const auto& comparison{PredicateComparisonStrings.find(condition)};
736 ASSERT_MSG(comparison != PredicateComparisonStrings.end(), 735 ASSERT_MSG(comparison != PredicateComparisonStrings.end(),
@@ -739,7 +738,8 @@ private:
739 std::string predicate{'(' + op_a + ") " + comparison->second + " (" + op_b + ')'}; 738 std::string predicate{'(' + op_a + ") " + comparison->second + " (" + op_b + ')'};
740 if (condition == PredCondition::LessThanWithNan || 739 if (condition == PredCondition::LessThanWithNan ||
741 condition == PredCondition::NotEqualWithNan || 740 condition == PredCondition::NotEqualWithNan ||
742 condition == PredCondition::GreaterThanWithNan) { 741 condition == PredCondition::GreaterThanWithNan ||
742 condition == PredCondition::GreaterEqualWithNan) {
743 predicate += " || isnan(" + op_a + ") || isnan(" + op_b + ')'; 743 predicate += " || isnan(" + op_a + ") || isnan(" + op_b + ')';
744 } 744 }
745 745