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

Jordan Justen jljusten at gmail.com
Mon Mar 18 16:10:32 PDT 2013


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
>


More information about the Piglit mailing list