glsl-1.50: test implicitly sized arrays match explicitly sized arrays across the same stage

Message ID 1419244589-4897-1-git-send-email-t_arceri@yahoo.com.au
State New
Headers show

Commit Message

'Timothy Arceri' via Patchwork Forward Dec. 22, 2014, 10:36 a.m.
---
 ...ge-unsized-interface-array-mismatch.shader_test | 55 +++++++++++++++++++++
 ...e-unsized-interface-array-mismatch2.shader_test | 56 ++++++++++++++++++++++
 .../intrastage-unsized-interface-array.shader_test | 55 +++++++++++++++++++++
 ...intrastage-unsized-interface-array2.shader_test | 56 ++++++++++++++++++++++
 4 files changed, 222 insertions(+)
 create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
 create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
 create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
 create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test

Patch hide | download patch | download mbox

diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
new file mode 100644
index 0000000..9e373a2
--- /dev/null
+++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
@@ -0,0 +1,55 @@ 
+# This test verifies that a link error is generated if implicitly sized
+# arrays dont match explicitly sized arrays across the same stage.
+
+[require]
+GLSL >= 1.50
+
+[vertex shader]
+#version 150
+
+out ArrayInterfaceBlock
+{
+  vec4 a;
+} i;
+
+void main()
+{
+  gl_Position = vec4(1.0);
+}
+
+[geometry shader]
+#version 150
+
+layout(lines_adjacency) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[4];
+
+void f()
+{
+  i[1].a = vec4(1, 0, 0, 1);
+}
+
+[geometry shader]
+#version 150
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[];
+
+void f();
+
+void main()
+{
+  f();
+  i[4].a = vec4(1, 0, 0, 1);
+
+  gl_Position = i[3].a;
+}
+
+[test]
+link error
diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
new file mode 100644
index 0000000..d661795
--- /dev/null
+++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
@@ -0,0 +1,56 @@ 
+# This test verifies that a link error is generated if implicitly sized
+# arrays dont match explicitly sized arrays across the same stage.
+
+[require]
+GLSL >= 1.50
+
+[vertex shader]
+#version 150
+
+out ArrayInterfaceBlock
+{
+  vec4 a;
+} i;
+
+void main()
+{
+  gl_Position = vec4(1.0);
+}
+
+[geometry shader]
+#version 150
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[];
+
+void f()
+{
+  i[4].a = vec4(1, 0, 0, 1);
+}
+
+[geometry shader]
+#version 150
+
+
+layout(lines_adjacency) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[4];
+
+void f();
+
+void main()
+{
+  f();
+  i[3].a = vec4(1, 0, 0, 1);
+
+  gl_Position = i[3].a;
+}
+
+[test]
+link error
diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
new file mode 100644
index 0000000..1dfae4f
--- /dev/null
+++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
@@ -0,0 +1,55 @@ 
+# Test implicitly sized arrays match explicitly sized arrays
+# across the same stage.
+
+[require]
+GLSL >= 1.50
+
+[vertex shader]
+#version 150
+
+out ArrayInterfaceBlock
+{
+  vec4 a;
+} i;
+
+void main()
+{
+  gl_Position = vec4(1.0);
+}
+
+[geometry shader]
+#version 150
+
+layout(lines_adjacency) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[4];
+
+void f()
+{
+  i[1].a = vec4(1, 0, 0, 1);
+}
+
+[geometry shader]
+#version 150
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[];
+
+void f();
+
+void main()
+{
+  f();
+  i[3].a = vec4(1, 0, 0, 1);
+
+  gl_Position = i[3].a;
+}
+
+[test]
+link success
diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test
new file mode 100644
index 0000000..1ad5b08
--- /dev/null
+++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test
@@ -0,0 +1,56 @@ 
+# Test implicitly sized arrays match explicitly sized arrays
+# across the same stage.
+
+[require]
+GLSL >= 1.50
+
+[vertex shader]
+#version 150
+
+out ArrayInterfaceBlock
+{
+  vec4 a;
+} i;
+
+void main()
+{
+  gl_Position = vec4(1.0);
+}
+
+[geometry shader]
+#version 150
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[];
+
+void f()
+{
+  i[3].a = vec4(1, 0, 0, 1);
+}
+
+[geometry shader]
+#version 150
+
+
+layout(lines_adjacency) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in ArrayInterfaceBlock
+{
+  vec4 a;
+} i[4];
+
+void f();
+
+void main()
+{
+  f();
+  i[3].a = vec4(1, 0, 0, 1);
+
+  gl_Position = i[3].a;
+}
+
+[test]
+link success