summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2015-07-05 17:18:11 +1000
committerTimothy Arceri <t_arceri@yahoo.com.au>2015-10-16 09:14:33 +1100
commita6d445a8f017660a1f487d1a62e32955da758f3e (patch)
treea91dda34c035c09c6eb3daf712e3ad68cfaa7c92
parent34cd099cb4f921c0c8280af3ad1c6c53a75f63a2 (diff)
arb_arrays_of_arrays: test linking of interface fields
Test results: AMD Radeon HD 6670 - Catalyst 14.501.1003 OpenGL 4.4 vs-to-fs-interface-field-mismatch.shader_test - fail vs-to-fs-interface-field-mismatch2.shader_test - fail vs-to-fs-interface-field-unsized-mismatch.shader_test - crash vs-to-fs-interface-field-unsized-mismatch2.shader_test - crash vs-to-fs-interface-field-unsized.shader_test - crash vs-to-fs-interface-field-unsized2.shader_test - crash Nvidia GeForce 840M - NVIDIA 346.47 vs-to-fs-interface-field-mismatch.shader_test - fail vs-to-fs-interface-field-mismatch2.shader_test - fail vs-to-fs-interface-field-unsized-mismatch.shader_test - fail vs-to-fs-interface-field-unsized-mismatch2.shader_test - fail vs-to-fs-interface-field-unsized.shader_test - pass vs-to-fs-interface-field-unsized2.shader_test - fail
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test36
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test36
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test36
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test37
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test36
-rw-r--r--tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test41
6 files changed, 222 insertions, 0 deletions
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test
new file mode 100644
index 000000000..68a82176d
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test
@@ -0,0 +1,36 @@
+# Test for linking error when interface fields
+# have mismatching array sizes
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[3][2];
+} i;
+
+void main()
+{
+ i.a[1][1] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[2][2];
+} i;
+
+void main()
+{
+ gl_FragColor = i.a[1][1];
+}
+
+[test]
+link error
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test
new file mode 100644
index 000000000..a76ba52dc
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test
@@ -0,0 +1,36 @@
+# Test for linking error when interface fields
+# have mismatching array sizes
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[3][2];
+} i;
+
+void main()
+{
+ i.a[1][1] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[3][4];
+} i;
+
+void main()
+{
+ gl_FragColor = i.a[1][1];
+}
+
+[test]
+link error
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test
new file mode 100644
index 000000000..76321e51d
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test
@@ -0,0 +1,36 @@
+# Test for linking error between vertex and fragment shaders
+# when interface fields are unmatching unsized arrays
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[][3];
+} i;
+
+void main()
+{
+ i.a[2][2] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[][3];
+} i;
+
+void main()
+{
+ gl_FragColor = i.a[1][2];
+}
+
+[test]
+link error
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test
new file mode 100644
index 000000000..12acb1e84
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test
@@ -0,0 +1,37 @@
+# Test for linking error between vertex and fragment shaders
+# when interface fields are unmatching unsized arrays, and the interface
+# itself is an array of arrays.
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[][2];
+} i[2][2];
+
+void main()
+{
+ i[0][1].a[1][1] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[][2];
+} i[2][2];
+
+void main()
+{
+ gl_FragColor = i[0][1].a[0][1];
+}
+
+[test]
+link error
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test
new file mode 100644
index 000000000..f53e93252
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test
@@ -0,0 +1,36 @@
+# Test for successful linking between vertex and fragment shaders
+# when interface field is an unsized array
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[][3];
+} i;
+
+void main()
+{
+ i.a[1][2] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[][3];
+} i;
+
+void main()
+{
+ gl_FragColor = i.a[1][2];
+}
+
+[test]
+link success
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test
new file mode 100644
index 000000000..269690462
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test
@@ -0,0 +1,41 @@
+# Test for successful linking between vertex and fragment shaders
+# when interface field is an unsized array, and the interface
+# itself is an array of arrays instance
+#
+# Note: The size of the arrays also means this tests the
+# max boundary of GL_MAX_VERTEX_ATTRIBS when it's set
+# to 64 (the mininum allowed for an implementation).
+
+[require]
+GLSL >= 1.50
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+out ArraysOfArraysBlock
+{
+ vec4 a[][2];
+} i[2][2];
+
+void main()
+{
+ i[1][0].a[1][1] = vec4(1.0);
+ gl_Position = vec4(1.0);
+}
+
+[fragment shader]
+#version 150
+#extension GL_ARB_arrays_of_arrays: enable
+in ArraysOfArraysBlock
+{
+ vec4 a[][2];
+} i[2][2];
+
+void main()
+{
+ gl_FragColor = i[1][0].a[1][1];
+}
+
+[test]
+link success