[2/8] arb_arrays_of_arrays: test linking of interface fields

Message ID 1434802475-4020-2-git-send-email-t_arceri@yahoo.com.au
State New
Headers show

Commit Message

'Timothy Arceri' via Patchwork Forward June 20, 2015, 12:14 p.m.
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
---
 .../vs-to-fs-interface-field-mismatch.shader_test  | 36 +++++++++++++++++++
 .../vs-to-fs-interface-field-mismatch2.shader_test | 36 +++++++++++++++++++
 ...fs-interface-field-unsized-mismatch.shader_test | 36 +++++++++++++++++++
 ...s-interface-field-unsized-mismatch2.shader_test | 37 +++++++++++++++++++
 .../vs-to-fs-interface-field-unsized.shader_test   | 36 +++++++++++++++++++
 .../vs-to-fs-interface-field-unsized2.shader_test  | 41 ++++++++++++++++++++++
 6 files changed, 222 insertions(+)
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test
 create mode 100644 tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test

Patch hide | download patch | download mbox

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 0000000..68a8217
--- /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 0000000..a76ba52
--- /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 0000000..76321e5
--- /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 0000000..12acb1e
--- /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 0000000..f53e932
--- /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 0000000..2696904
--- /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