Sure, although I can't claim any real expertise with interface blocks. Stuart
On Mon, Mar 18, 2013 at 4:10 PM, Jordan Justen <[email protected]> wrote: > On Tue, Mar 12, 2013 at 1:48 PM, Stuart Abercrombie > <[email protected]> wrote: > > Can you remove the explicit #version lines in these? It will be > inserted by > > shader_runner based on the GLSL >= 1.50. > > Will do. > > > Reviewed-by: Stuart Abercrombie <[email protected]> > > Does your r-b cover patch 2/2 as well? > > Thanks, > > -Jordan > > > 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 > > >
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
