[Piglit] [PATCH 01/13] glsl-1.10: add tests for indirect addressing of FS inputs

Marek Olšák maraeo at gmail.com
Mon Apr 6 16:39:50 PDT 2015


From: Marek Olšák <marek.olsak at amd.com>

Each test has 2 arrays and one of them uses a negative relative index.
---
 .../fs-input-array-float-index-rd.shader_test      | 77 ++++++++++++++++++++++
 .../fs-input-array-vec2-index-rd.shader_test       | 77 ++++++++++++++++++++++
 .../fs-input-array-vec3-index-rd.shader_test       | 77 ++++++++++++++++++++++
 .../fs-input-array-vec4-index-rd.shader_test       | 77 ++++++++++++++++++++++
 4 files changed, 308 insertions(+)
 create mode 100644 tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-float-index-rd.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec2-index-rd.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec3-index-rd.shader_test
 create mode 100644 tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec4-index-rd.shader_test

diff --git a/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-float-index-rd.shader_test b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-float-index-rd.shader_test
new file mode 100644
index 0000000..b23d1d6
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-float-index-rd.shader_test
@@ -0,0 +1,77 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+varying float m1[4];
+varying float m2[4];
+
+void main()
+{
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+    m1[0] = 1.0;
+    m1[1] = 2.0;
+    m1[2] = 3.0;
+    m1[3] = 4.0;
+    m2[0] = 5.0;
+    m2[1] = 6.0;
+    m2[2] = 7.0;
+    m2[3] = 8.0;
+}
+
+[fragment shader]
+uniform int index;
+uniform float expect;
+varying float m1[4];
+varying float m2[4];
+
+void main()
+{
+    gl_FragColor = ((index >= 4 ? m2[index-4] : m1[index]) == expect)
+        ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.5 0.5 0.5 0.5
+clear
+ortho
+
+uniform int index 0
+uniform float expect 1
+draw rect 5 5 10 10
+probe rgb 10 10 0.0 1.0 0.0
+
+uniform int index 1
+uniform float expect 2
+draw rect 30 5 10 10
+probe rgb 35 10 0.0 1.0 0.0
+
+uniform int index 2
+uniform float expect 3
+draw rect 55 5 10 10
+probe rgb 60 10 0.0 1.0 0.0
+
+uniform int index 3
+uniform float expect 4
+draw rect 80 5 10 10
+probe rgb 85 10 0.0 1.0 0.0
+
+uniform int index 4
+uniform float expect 5
+draw rect 105 5 10 10
+probe rgb 110 10 0.0 1.0 0.0
+
+uniform int index 5
+uniform float expect 6
+draw rect 130 5 10 10
+probe rgb 135 10 0.0 1.0 0.0
+
+uniform int index 6
+uniform float expect 7
+draw rect 155 5 10 10
+probe rgb 160 10 0.0 1.0 0.0
+
+uniform int index 7
+uniform float expect 8
+draw rect 180 5 10 10
+probe rgb 185 10 0.0 1.0 0.0
diff --git a/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec2-index-rd.shader_test b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec2-index-rd.shader_test
new file mode 100644
index 0000000..bdbd45f
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec2-index-rd.shader_test
@@ -0,0 +1,77 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+varying vec2 m1[4];
+varying vec2 m2[4];
+
+void main()
+{
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+    m1[0] = vec2(1.0, 1.1);
+    m1[1] = vec2(2.0, 2.1);
+    m1[2] = vec2(3.0, 3.1);
+    m1[3] = vec2(4.0, 4.1);
+    m2[0] = vec2(5.0, 5.1);
+    m2[1] = vec2(6.0, 6.1);
+    m2[2] = vec2(7.0, 7.1);
+    m2[3] = vec2(8.0, 8.1);
+}
+
+[fragment shader]
+uniform int index;
+uniform vec2 expect;
+varying vec2 m1[4];
+varying vec2 m2[4];
+
+void main()
+{
+    gl_FragColor = ((index >= 4 ? m2[index-4] : m1[index]) == expect)
+        ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.5 0.5 0.5 0.5
+clear
+ortho
+
+uniform int index 0
+uniform vec2 expect 1 1.1
+draw rect 5 5 10 10
+probe rgb 10 10 0.0 1.0 0.0
+
+uniform int index 1
+uniform vec2 expect 2 2.1
+draw rect 30 5 10 10
+probe rgb 35 10 0.0 1.0 0.0
+
+uniform int index 2
+uniform vec2 expect 3 3.1
+draw rect 55 5 10 10
+probe rgb 60 10 0.0 1.0 0.0
+
+uniform int index 3
+uniform vec2 expect 4 4.1
+draw rect 80 5 10 10
+probe rgb 85 10 0.0 1.0 0.0
+
+uniform int index 4
+uniform vec2 expect 5 5.1
+draw rect 105 5 10 10
+probe rgb 110 10 0.0 1.0 0.0
+
+uniform int index 5
+uniform vec2 expect 6 6.1
+draw rect 130 5 10 10
+probe rgb 135 10 0.0 1.0 0.0
+
+uniform int index 6
+uniform vec2 expect 7 7.1
+draw rect 155 5 10 10
+probe rgb 160 10 0.0 1.0 0.0
+
+uniform int index 7
+uniform vec2 expect 8 8.1
+draw rect 180 5 10 10
+probe rgb 185 10 0.0 1.0 0.0
diff --git a/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec3-index-rd.shader_test b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec3-index-rd.shader_test
new file mode 100644
index 0000000..d9030be
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec3-index-rd.shader_test
@@ -0,0 +1,77 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+varying vec3 m1[4];
+varying vec3 m2[4];
+
+void main()
+{
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+    m1[0] = vec3(1.0, 1.1, 1.2);
+    m1[1] = vec3(2.0, 2.1, 2.2);
+    m1[2] = vec3(3.0, 3.1, 3.2);
+    m1[3] = vec3(4.0, 4.1, 4.2);
+    m2[0] = vec3(5.0, 5.1, 5.2);
+    m2[1] = vec3(6.0, 6.1, 6.2);
+    m2[2] = vec3(7.0, 7.1, 7.2);
+    m2[3] = vec3(8.0, 8.1, 8.2);
+}
+
+[fragment shader]
+uniform int index;
+uniform vec3 expect;
+varying vec3 m1[4];
+varying vec3 m2[4];
+
+void main()
+{
+    gl_FragColor = ((index >= 4 ? m2[index-4] : m1[index]) == expect)
+        ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.5 0.5 0.5 0.5
+clear
+ortho
+
+uniform int index 0
+uniform vec3 expect 1 1.1 1.2
+draw rect 5 5 10 10
+probe rgb 10 10 0.0 1.0 0.0
+
+uniform int index 1
+uniform vec3 expect 2 2.1 2.2
+draw rect 30 5 10 10
+probe rgb 35 10 0.0 1.0 0.0
+
+uniform int index 2
+uniform vec3 expect 3 3.1 3.2
+draw rect 55 5 10 10
+probe rgb 60 10 0.0 1.0 0.0
+
+uniform int index 3
+uniform vec3 expect 4 4.1 4.2
+draw rect 80 5 10 10
+probe rgb 85 10 0.0 1.0 0.0
+
+uniform int index 4
+uniform vec3 expect 5 5.1 5.2
+draw rect 105 5 10 10
+probe rgb 110 10 0.0 1.0 0.0
+
+uniform int index 5
+uniform vec3 expect 6 6.1 6.2
+draw rect 130 5 10 10
+probe rgb 135 10 0.0 1.0 0.0
+
+uniform int index 6
+uniform vec3 expect 7 7.1 7.2
+draw rect 155 5 10 10
+probe rgb 160 10 0.0 1.0 0.0
+
+uniform int index 7
+uniform vec3 expect 8 8.1 8.2
+draw rect 180 5 10 10
+probe rgb 185 10 0.0 1.0 0.0
diff --git a/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec4-index-rd.shader_test b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec4-index-rd.shader_test
new file mode 100644
index 0000000..74d08a1
--- /dev/null
+++ b/tests/spec/glsl-1.10/execution/variable-indexing/fs-input-array-vec4-index-rd.shader_test
@@ -0,0 +1,77 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+varying vec4 m1[4];
+varying vec4 m2[4];
+
+void main()
+{
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+    m1[0] = vec4(1.0, 1.1, 1.2, 1.3);
+    m1[1] = vec4(2.0, 2.1, 2.2, 2.3);
+    m1[2] = vec4(3.0, 3.1, 3.2, 3.3);
+    m1[3] = vec4(4.0, 4.1, 4.2, 4.3);
+    m2[0] = vec4(5.0, 5.1, 5.2, 5.3);
+    m2[1] = vec4(6.0, 6.1, 6.2, 6.3);
+    m2[2] = vec4(7.0, 7.1, 7.2, 7.3);
+    m2[3] = vec4(8.0, 8.1, 8.2, 8.3);
+}
+
+[fragment shader]
+uniform int index;
+uniform vec4 expect;
+varying vec4 m1[4];
+varying vec4 m2[4];
+
+void main()
+{
+    gl_FragColor = ((index >= 4 ? m2[index-4] : m1[index]) == expect)
+        ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.5 0.5 0.5 0.5
+clear
+ortho
+
+uniform int index 0
+uniform vec4 expect 1 1.1 1.2 1.3
+draw rect 5 5 10 10
+probe rgb 10 10 0.0 1.0 0.0
+
+uniform int index 1
+uniform vec4 expect 2 2.1 2.2 2.3
+draw rect 30 5 10 10
+probe rgb 35 10 0.0 1.0 0.0
+
+uniform int index 2
+uniform vec4 expect 3 3.1 3.2 3.3
+draw rect 55 5 10 10
+probe rgb 60 10 0.0 1.0 0.0
+
+uniform int index 3
+uniform vec4 expect 4 4.1 4.2 4.3
+draw rect 80 5 10 10
+probe rgb 85 10 0.0 1.0 0.0
+
+uniform int index 4
+uniform vec4 expect 5 5.1 5.2 5.3
+draw rect 105 5 10 10
+probe rgb 110 10 0.0 1.0 0.0
+
+uniform int index 5
+uniform vec4 expect 6 6.1 6.2 6.3
+draw rect 130 5 10 10
+probe rgb 135 10 0.0 1.0 0.0
+
+uniform int index 6
+uniform vec4 expect 7 7.1 7.2 7.3
+draw rect 155 5 10 10
+probe rgb 160 10 0.0 1.0 0.0
+
+uniform int index 7
+uniform vec4 expect 8 8.1 8.2 8.3
+draw rect 180 5 10 10
+probe rgb 185 10 0.0 1.0 0.0
-- 
2.1.0



More information about the Piglit mailing list