--- ...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
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 -- 2.1.0 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit