[Piglit] [PATCH 1/2] glsl-1.50: add more negative tests for interface block linking

Stuart Abercrombie sabercrombie at google.com
Mon Mar 18 16:56:18 PDT 2013


Sure, although I can't claim any real expertise with interface blocks.

Stuart


On Mon, Mar 18, 2013 at 4:10 PM, Jordan Justen <jljusten at gmail.com> wrote:

> On Tue, Mar 12, 2013 at 1:48 PM, Stuart Abercrombie
> <sabercrombie at google.com> 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 <sabercrombie at chromium.org>
>
> Does your r-b cover patch 2/2 as well?
>
> Thanks,
>
> -Jordan
>
> > On Tue, Mar 12, 2013 at 1:28 PM, Jordan Justen <
> jordan.l.justen at intel.com>
> > wrote:
> >>
> >> A few tests to make sure that interface blocks are defined
> >> the same during intrastage and interstage linking.
> >>
> >> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> >> ---
> >>  ...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
> >> Piglit at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/piglit
> >
> >
> >
> > _______________________________________________
> > Piglit mailing list
> > Piglit at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/piglit
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130318/af5a947d/attachment.html>


More information about the Piglit mailing list