Implement isnan/isinf
This change adds ANGLE support for isnan/isinf.
BUG=angle:922
TEST=dEQP tests:
dEQP-GLES3.functional.shaders.builtin_functions.common.isnan.*
(high precision tests still fail)
Tests passing 100% because of this change:
dEQP-GLES3.functional.shaders.builtin_functions.common.isinf.*
Reduced number of errors in tests:
EQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.isnan.*
dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.isinf_*
Change-Id: I52bf18b59365ea7031746ae840550162d7e6b96e
Reviewed-on: https://chromium-review.googlesource.com/250761
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Nicolas Capens <capn@chromium.org>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 045ea4c..1615762 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -1655,6 +1655,8 @@
case EOpFloor: outputTriplet(visit, "floor(", "", ")"); break;
case EOpCeil: outputTriplet(visit, "ceil(", "", ")"); break;
case EOpFract: outputTriplet(visit, "frac(", "", ")"); break;
+ case EOpIsNan: outputTriplet(visit, "isnan(", "", ")"); break;
+ case EOpIsInf: outputTriplet(visit, "isinf(", "", ")"); break;
case EOpFloatBitsToInt: outputTriplet(visit, "asint(", "", ")"); break;
case EOpFloatBitsToUint: outputTriplet(visit, "asuint(", "", ")"); break;
case EOpIntBitsToFloat: outputTriplet(visit, "asfloat(", "", ")"); break;