summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2018-11-08 22:12:16 -0800
committerMatt Turner <[email protected]>2019-01-09 16:42:40 -0800
commit15757bc80b89aa47d3c68e2d785b1a94cf4e3a01 (patch)
tree090df3650772e87b1bf6ba6fb6d560c48d6754c7 /src
parente213f3871fb1e9839715e517d5a003d4982690c6 (diff)
glsl: Add "built-in" functions to convert bool to double
And vice versa. Reviewed-by: Elie Tournier <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/compiler/glsl/float64.glsl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/glsl/float64.glsl b/src/compiler/glsl/float64.glsl
index 7d12da50ac0..1808fec0727 100644
--- a/src/compiler/glsl/float64.glsl
+++ b/src/compiler/glsl/float64.glsl
@@ -951,6 +951,18 @@ __int_to_fp64(int a)
return __packFloat64(zSign, 0x412 - shiftCount, zFrac0, zFrac1);
}
+bool
+__fp64_to_bool(uint64_t a)
+{
+ return !__feq64_nonnan(__fabs64(a), 0ul);
+}
+
+uint64_t
+__bool_to_fp64(bool a)
+{
+ return __int_to_fp64(int(a));
+}
+
/* Packs the sign `zSign', exponent `zExp', and significand `zFrac' into a
* single-precision floating-point value, returning the result. After being
* shifted into the proper positions, the three fields are simply added