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
