Can you remove the explicit #version lines in these? It will be inserted by shader_runner based on the GLSL >= 1.50.
Reviewed-by: Stuart Abercrombie <[email protected]> On Tue, Mar 12, 2013 at 1:28 PM, Jordan Justen <[email protected]>wrote: > A few tests to make sure that interface blocks are defined > the same during intrastage and interstage linking. > > Signed-off-by: Jordan Justen <[email protected]> > --- > ...s-multiple-vs-member-count-mismatch.shader_test | 41 > ++++++++++++++++++++ > ...-blocks-vs-fs-member-count-mismatch.shader_test | 38 > ++++++++++++++++++ > ...-blocks-vs-fs-member-order-mismatch.shader_test | 39 > +++++++++++++++++++ > 3 files changed, 118 insertions(+) > create mode 100644 > tests/spec/glsl-1.50/linker/interface-blocks-multiple-vs-member-count-mismatch.shader_test > create mode 100644 > tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-count-mismatch.shader_test > create mode 100644 > tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-order-mismatch.shader_test > > diff --git > a/tests/spec/glsl-1.50/linker/interface-blocks-multiple-vs-member-count-mismatch.shader_test > b/tests/spec/glsl-1.50/linker/interface-blocks-multiple-vs-member-count-mismatch.shader_test > new file mode 100644 > index 0000000..6e05e2f > --- /dev/null > +++ > b/tests/spec/glsl-1.50/linker/interface-blocks-multiple-vs-member-count-mismatch.shader_test > @@ -0,0 +1,41 @@ > +# Tests that a link error occurs when an interface block member's type > +# differs between the vertex and fragment shaders. > +# > +# GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: > +# "Matched block names within an interface (as defined above) must match > +# in terms of having the same number of declarations with the same > +# sequence of types and the same sequence of member names, as well as > +# having the same member-wise layout qualification (see next section)." > +[require] > +GLSL >= 1.50 > + > +[vertex shader] > +#version 150 > + > +out block { > + vec4 a; > +} vs1_block; > + > +void main() > +{ > + gl_Position = vec4(0.0); > +} > + > +[vertex shader] > +#version 150 > + > +out block { > + vec4 a; > + vec4 b; // b is not present in VS #1 interface block > +} vs_block; > + > +[fragment shader] > +#version 150 > + > +void main() > +{ > +} > + > +[test] > +link error > + > diff --git > a/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-count-mismatch.shader_test > b/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-count-mismatch.shader_test > new file mode 100644 > index 0000000..7702d3b > --- /dev/null > +++ > b/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-count-mismatch.shader_test > @@ -0,0 +1,38 @@ > +# Tests that a link error occurs when an interface block member's type > +# differs between the vertex and fragment shaders. > +# > +# GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: > +# "Matched block names within an interface (as defined above) must match > +# in terms of having the same number of declarations with the same > +# sequence of types and the same sequence of member names, as well as > +# having the same member-wise layout qualification (see next section)." > +[require] > +GLSL >= 1.50 > + > +[vertex shader] > +#version 150 > + > +out block { > + vec4 a; > +} vs_block; > + > +void main() > +{ > + gl_Position = vec4(0.0); > +} > + > +[fragment shader] > +#version 150 > + > +in block { > + vec4 a; > + vec4 b; // b is not present in VS interface block > +} fs_block; > + > +void main() > +{ > +} > + > +[test] > +link error > + > diff --git > a/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-order-mismatch.shader_test > b/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-order-mismatch.shader_test > new file mode 100644 > index 0000000..2a3c5ec > --- /dev/null > +++ > b/tests/spec/glsl-1.50/linker/interface-blocks-vs-fs-member-order-mismatch.shader_test > @@ -0,0 +1,39 @@ > +# Tests that a link error occurs when an interface block member's type > +# differs between the vertex and fragment shaders. > +# > +# GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: > +# "Matched block names within an interface (as defined above) must match > +# in terms of having the same number of declarations with the same > +# sequence of types and the same sequence of member names, as well as > +# having the same member-wise layout qualification (see next section)." > +[require] > +GLSL >= 1.50 > + > +[vertex shader] > +#version 150 > + > +out block { > + vec4 a; > + vec4 b; > +} vs_block; > + > +void main() > +{ > + gl_Position = vec4(0.0); > +} > + > +[fragment shader] > +#version 150 > + > +in block { > + vec4 b; // b is the second member in the VS interface block > + vec4 a; > +} fs_block; > + > +void main() > +{ > +} > + > +[test] > +link error > + > -- > 1.7.10.4 > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit >
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
