From d626bc8c626bebfbe6cade2cd1d6a3b734d5e477 Mon Sep 17 00:00:00 2001 From: Hexagon12 Date: Fri, 31 Aug 2018 10:40:18 +0300 Subject: [PATCH] Added predicate comparison GreaterEqualWithNan --- src/video_core/engines/shader_bytecode.h | 1 + src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 6 +++--- 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 65e0c469f8..3e4efbe0c8 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 { LessThanWithNan = 9, GreaterThanWithNan = 12, NotEqualWithNan = 13, + GreaterEqualWithNan = 14, // TODO(Subv): Other condition types }; diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 842bfa0b71..391c92d479 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: {PredCondition::LessEqual, "<="}, {PredCondition::GreaterThan, ">"}, {PredCondition::NotEqual, "!="}, {PredCondition::GreaterEqual, ">="}, {PredCondition::LessThanWithNan, "<"}, {PredCondition::NotEqualWithNan, "!="}, - {PredCondition::GreaterThanWithNan, ">"}, - }; + {PredCondition::GreaterThanWithNan, ">"}, {PredCondition::GreaterEqualWithNan, ">="}}; const auto& comparison{PredicateComparisonStrings.find(condition)}; ASSERT_MSG(comparison != PredicateComparisonStrings.end(), @@ -739,7 +738,8 @@ private: std::string predicate{'(' + op_a + ") " + comparison->second + " (" + op_b + ')'}; if (condition == PredCondition::LessThanWithNan || condition == PredCondition::NotEqualWithNan || - condition == PredCondition::GreaterThanWithNan) { + condition == PredCondition::GreaterThanWithNan || + condition == PredCondition::GreaterEqualWithNan) { predicate += " || isnan(" + op_a + ") || isnan(" + op_b + ')'; }