summaryrefslogtreecommitdiff
path: root/tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test')
-rw-r--r--tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test b/tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test
new file mode 100644
index 000000000..601a31141
--- /dev/null
+++ b/tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-frexp-dvec4.shader_test
@@ -0,0 +1,72 @@
+[require]
+GLSL >= 1.50
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+in vec4 vertex;
+
+void main() {
+ gl_Position = vertex;
+}
+
+[fragment shader]
+#extension GL_ARB_gpu_shader_fp64 : enable
+
+out vec4 color;
+
+uniform dvec4 given_doub;
+uniform dvec4 expected_mantissa;
+uniform ivec4 expected_exponent;
+
+void main()
+{
+ /* Green if both pass. */
+ color = vec4(0.0, 1.0, 0.0, 1.0);
+
+ ivec4 exponent;
+ dvec4 mantissa;
+
+ mantissa = frexp(given_doub, exponent);
+
+ if (mantissa != expected_mantissa) {
+ color.r = 1.0;
+ }
+
+ if (exponent != expected_exponent) {
+ color.b = 1.0;
+ }
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0 1.0
+-1.0 1.0
+
+[test]
+uniform dvec4 given_doub 0.0 -0.0 0.5 -0.5
+uniform dvec4 expected_mantissa 0.0 -0.0 0.5 -0.5
+uniform ivec4 expected_exponent 0 0 0 0
+#draw arrays GL_TRIANGLE_FAN 0 4
+#probe rgba 0 0 0.0 1.0 0.0 1.0
+
+uniform dvec4 given_doub 0.49 1.0 25.0 100
+uniform dvec4 expected_mantissa 0.98 0.5 0.78125 0.78125
+uniform ivec4 expected_exponent -1 1 5 7
+#draw arrays GL_TRIANGLE_FAN 0 4
+#probe rgba 1 0 0.0 1.0 0.0 1.0
+
+# Test FLT_MIN/MAX in doubles
+uniform dvec4 given_doub 1.1754943508222875e-38 -1.1754943508222875e-38 3.4028234699999998e+38 -3.4028234699999998e+38
+uniform dvec4 expected_mantissa 0.5 -0.5 0.99999994145762339 -0.99999994145762339
+uniform ivec4 expected_exponent -125 -125 128 128
+#draw arrays GL_TRIANGLE_FAN 0 4
+#probe rgba 2 0 0.0 1.0 0.0 1.0
+
+# Test DBL_MIN/MAX
+uniform dvec4 given_doub 2.2250738585072014e-308 -2.2250738585072014e-308 1.7976931348623157e+308 -1.7976931348623157e+308
+uniform dvec4 expected_mantissa 0.5 -0.5 0.99999999999999989 -0.99999999999999989
+uniform ivec4 expected_exponent -1021 -1021 1024 1024
+draw arrays GL_TRIANGLE_FAN 0 4
+probe rgba 3 0 0.0 1.0 0.0 1.0 \ No newline at end of file