Added predcondition GreaterThanWithNan
This commit is contained in:
		
							parent
							
								
									504cff2b7a
								
							
						
					
					
						commit
						63dff47e22
					
				@ -141,6 +141,7 @@ enum class PredCondition : u64 {
 | 
			
		||||
    NotEqual = 5,
 | 
			
		||||
    GreaterEqual = 6,
 | 
			
		||||
    LessThanWithNan = 9,
 | 
			
		||||
    GreaterThanWithNan = 12,
 | 
			
		||||
    NotEqualWithNan = 13,
 | 
			
		||||
    // TODO(Subv): Other condition types
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -703,10 +703,11 @@ private:
 | 
			
		||||
                                       const std::string& op_a, const std::string& op_b) const {
 | 
			
		||||
        using Tegra::Shader::PredCondition;
 | 
			
		||||
        static const std::unordered_map<PredCondition, const char*> PredicateComparisonStrings = {
 | 
			
		||||
            {PredCondition::LessThan, "<"},        {PredCondition::Equal, "=="},
 | 
			
		||||
            {PredCondition::LessEqual, "<="},      {PredCondition::GreaterThan, ">"},
 | 
			
		||||
            {PredCondition::NotEqual, "!="},       {PredCondition::GreaterEqual, ">="},
 | 
			
		||||
            {PredCondition::LessThanWithNan, "<"}, {PredCondition::NotEqualWithNan, "!="},
 | 
			
		||||
            {PredCondition::LessThan, "<"},           {PredCondition::Equal, "=="},
 | 
			
		||||
            {PredCondition::LessEqual, "<="},         {PredCondition::GreaterThan, ">"},
 | 
			
		||||
            {PredCondition::NotEqual, "!="},          {PredCondition::GreaterEqual, ">="},
 | 
			
		||||
            {PredCondition::LessThanWithNan, "<"},    {PredCondition::NotEqualWithNan, "!="},
 | 
			
		||||
            {PredCondition::GreaterThanWithNan, ">"},
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        const auto& comparison{PredicateComparisonStrings.find(condition)};
 | 
			
		||||
@ -715,7 +716,8 @@ private:
 | 
			
		||||
 | 
			
		||||
        std::string predicate{'(' + op_a + ") " + comparison->second + " (" + op_b + ')'};
 | 
			
		||||
        if (condition == PredCondition::LessThanWithNan ||
 | 
			
		||||
            condition == PredCondition::NotEqualWithNan) {
 | 
			
		||||
            condition == PredCondition::NotEqualWithNan ||
 | 
			
		||||
            condition == PredCondition::GreaterThanWithNan) {
 | 
			
		||||
            predicate += " || isnan(" + op_a + ") || isnan(" + op_b + ')';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user