[Piglit] [PATCH 2/2] arb_gpu_shader_fp64: add non-uniform control flow test for indirect addressing
Samuel Iglesias Gonsálvez
siglesias at igalia.com
Tue Feb 14 10:20:26 UTC 2017
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at 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
More information about the Piglit
mailing list