Signed-off-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com>
---
 ...t-indirect-non-uniform-control-flow.shader_test | 52 +++++++++++++++++
 ...t-indirect-non-uniform-control-flow.shader_test | 68 ++++++++++++++++++++++
 2 files changed, 120 insertions(+)
 create mode 100644 
tests/spec/arb_gpu_shader_fp64/execution/fs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
 create mode 100644 
tests/spec/arb_gpu_shader_fp64/execution/vs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test

diff --git 
a/tests/spec/arb_gpu_shader_fp64/execution/fs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
 
b/tests/spec/arb_gpu_shader_fp64/execution/fs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
new file mode 100644
index 000000000..f2d4ac592
--- /dev/null
+++ 
b/tests/spec/arb_gpu_shader_fp64/execution/fs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
@@ -0,0 +1,52 @@
+[require]
+GLSL >= 4.00
+GL_ARB_gpu_shader_fp64
+
+[vertex shader passthrough]
+
+[fragment shader]
+#extension GL_ARB_gpu_shader_fp64 : enable
+
+uniform double arg0;
+uniform double tolerance;
+uniform dvec4 expected;
+
+uniform double arg[7];
+out vec4 color;
+
+void main()
+{
+       int index;
+       double tol = tolerance;
+       vec4 color2 = vec4(0.0, 1.0, 0.0, 1.0);
+       float cx = gl_FragCoord.x;
+       float cy = gl_FragCoord.y;
+       if (cx == cy) {
+         index = int(arg[6]);
+       } else {
+         index = int(arg[5]);
+         tol = 0.35;
+         color2 = vec4(0.0, 0.0, 1.0, 1.0);
+       }
+       dvec4 result = dvec4(arg[index] + arg0);
+       color = distance(result, expected) <= tol
+               ? color2 : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+
+clear
+uniform double arg0 0.25
+uniform double tolerance 0.0
+uniform dvec4 expected 0.65 0.65 0.65 0.65
+uniform double arg[0] 0.1
+uniform double arg[1] 0.2
+uniform double arg[2] 0.3
+uniform double arg[3] 0.4
+uniform double arg[4] 0.5
+uniform double arg[5] 2.0
+uniform double arg[6] 3.0
+draw rect -1 -1 2 2
+probe rgba 1 1 0.0 1.0 0.0 1.0
+probe rgba 1 0 0.0 0.0 1.0 1.0
diff --git 
a/tests/spec/arb_gpu_shader_fp64/execution/vs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
 
b/tests/spec/arb_gpu_shader_fp64/execution/vs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
new file mode 100644
index 000000000..80bcec7fc
--- /dev/null
+++ 
b/tests/spec/arb_gpu_shader_fp64/execution/vs-double-uniform-array-direct-indirect-non-uniform-control-flow.shader_test
@@ -0,0 +1,68 @@
+[require]
+GLSL >= 1.50
+GL_ARB_gpu_shader_fp64
+
+[vertex shader]
+#version 150
+#extension GL_ARB_gpu_shader_fp64 : require
+
+uniform double arg0;
+uniform dvec4 expected;
+
+uniform double arg[7];
+
+in vec4 piglit_vertex;
+flat out vec4 v;
+
+void main()
+{
+       gl_Position = piglit_vertex;
+
+       int index;
+       vec4 color2;
+       dvec4 result;
+       dvec4 exp;
+       double tol = 0.01;
+       if (gl_VertexID % 2 == 1) {
+          index = int(arg[6]);
+          color2 = vec4(0.0, 1.0, 0.0, 1.0);
+          result = dvec4(arg[index] + arg0);
+          exp = expected;
+       } else {
+          index = int(arg[5]);
+          color2 = vec4(0.0, 0.0, 1.0, 1.0);
+          result = dvec4(arg[index] + arg0);
+          exp = dvec4(0.55, 0.55, 0.55, 0.55);
+          tol = 0.01;
+       }
+       v = distance(result, exp) <= tol
+               ? color2 : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[fragment shader]
+#version 150
+
+flat in vec4 v;
+out vec4 color;
+
+void main()
+{
+       color = v;
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+
+clear
+uniform double arg0 0.25
+uniform dvec4 expected 0.65 0.65 0.65 0.65
+uniform double arg[0] 0.1
+uniform double arg[1] 0.2
+uniform double arg[2] 0.3
+uniform double arg[3] 0.4
+uniform double arg[4] 0.5
+uniform double arg[5] 2.0
+uniform double arg[6] 3.0
+draw rect -1 -1 2 2
+probe rgba 127 127 0.0 1.0 0.0 1.0
+probe rgba 1 1 0.0 0.0 1.0 1.0
-- 
2.11.0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to