Reviewed-by: Chris Forbes <[email protected]>
On Mon, Dec 22, 2014 at 11:36 PM, Timothy Arceri <[email protected]> wrote: > --- > ...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 > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
