[Piglit] [PATCH] arb_shader_image_load_store: test duplicate format qualifier more thoroughly

Timothy Arceri t_arceri at yahoo.com.au
Tue Jan 19 18:33:26 PST 2016


On Wed, 2016-01-20 at 13:27 +1100, Timothy Arceri wrote:
> On Tue, 2016-01-19 at 18:08 -0800, Francisco Jerez wrote:
> > Timothy Arceri <timothy.arceri at collabora.com> writes:
> > 
> > > From the ARB_shader_image_load_store spec:
> > > 
> > >    "Only one format qualifier may be specified for any image
> > > variable
> > >     declaration."
> > > ---
> > >  .../gen_shader_image_load_store_tests.py           | 15
> > > +++++++++++
> > >  ...aration-format-qualifier-duplicate-420pack.frag | 28
> > > +++++++++++++++++++++
> > >  ...aration-format-qualifier-duplicate-420pack.vert | 28
> > > +++++++++++++++++++++
> > >  ...ormat-qualifier-duplicate-enhanced-layouts.frag | 29
> > > ++++++++++++++++++++++
> > >  ...ormat-qualifier-duplicate-enhanced-layouts.vert | 29
> > > ++++++++++++++++++++++
> > 
> > Can you comment on the usefulness of these last four tests?  At
> > first
> > glance it doesn't seem obvious why they provide any value over
> > declaration-format-qualifier-duplicate or
> > declaration-format-qualifier-duplicate-within-layout.
> 
> Sure.
> 
> ARB_enhanced_layouts
> 
>  Allows duplicates within a single layout qualifier e.g.
> 
>  layout(location = 0, location = 1) out vec4 a;
> 
> ARB_shading_language_420pack
> 
>  Allows multiple layout qualifiers e.g.
> 
>  layout(location = 0) layout(location = 2) out vec4 b;
> 
> However
> 
> layout(rgba32f, rgba32f) uniform image2D img;
> 
> and
> 
> layout(rgba32f) layout(rgba32f) uniform image2D img;
> 
> Should still fail when these extensions are enabled according to the
> spec.
> 
> I can add this to the commit message if you like.

It might also help if I change:

>From the ARB_shader_image_load_store spec: ->
>From Section .. of the GLSL 4.50 spec:

In these tests.


> 
> > 
> > >  5 files changed, 129 insertions(+)
> > >  create mode 100644
> > > tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format
> > > -qualifier-duplicate-420pack.frag
> > >  create mode 100644
> > > tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format
> > > -qualifier-duplicate-420pack.vert
> > >  create mode 100644
> > > tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format
> > > -qualifier-duplicate-enhanced-layouts.frag
> > >  create mode 100644
> > > tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format
> > > -qualifier-duplicate-enhanced-layouts.vert
> > > 
> > > diff --git a/generated_tests/gen_shader_image_load_store_tests.py
> > > b/generated_tests/gen_shader_image_load_store_tests.py
> > > index 8d6be9c..ee27808 100644
> > > --- a/generated_tests/gen_shader_image_load_store_tests.py
> > > +++ b/generated_tests/gen_shader_image_load_store_tests.py
> > > @@ -473,6 +473,21 @@ gen('declaration-format-qualifier
> > > -duplicate',
> > > """\
> > >      }
> > >  """, shader_stages)
> > >  
> > > +gen('declaration-format-qualifier-duplicate-within-layout', """\
> > > +    ${header('fail')}
> > > +    /*
> > > +     * From the ARB_shader_image_load_store spec:
> > > +     *
> > > +     * "Only one format qualifier may be specified for any image
> > > variable
> > > +     *  declaration."
> > > +     */
> > > +    layout(rgba32f, rgba32f) uniform image2D img;
> > > +
> > > +    void main()
> > > +    {
> > > +    }
> > > +""", shader_stages)
> > > +
> > >  gen('declaration-format-qualifier-missing', """\
> > >      ${header(status)}
> > >      /*
> > > diff --git
> > > a/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.frag
> > > b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.frag
> > > new file mode 100644
> > > index 0000000..1ea3749
> > > --- /dev/null
> > > +++ b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.frag
> > > @@ -0,0 +1,28 @@
> > > +/*
> > > + * [config]
> > > + * expect_result: fail
> > > + * glsl_version: 1.50
> > > + * require_extensions: GL_ARB_shader_image_load_store
> > > GL_ARB_shading_language_420pack
> > > + * [end config]
> > > + */
> > > +#version 150
> > > +#extension GL_ARB_shader_image_load_store: require
> > > +#extension GL_ARB_shading_language_420pack: require
> > > +
> > > +/*
> > > + * From the ARB_shader_image_load_store spec:
> > > + *
> > > + *   "Only one format qualifier may be specified for any image
> > > variable
> > > + *    declaration."
> > > + *
> > > + * From the ARB_shading_language_420pack spec:
> > > + *
> > > + *   "More than one layout qualifier may appear in a single
> > > declaration. If
> > > + *   the same layout-qualifier-name occurs in multiple layout
> > > qualifiers for
> > > + *   the same declaration, the last one overrides the former
> > > ones."
> > > + */
> > > +layout(rgba32f) layout(rgba32f) uniform image2D img;
> > > +
> > > +void main()
> > > +{
> > > +}
> > > diff --git
> > > a/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.vert
> > > b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.vert
> > > new file mode 100644
> > > index 0000000..1ea3749
> > > --- /dev/null
> > > +++ b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-420pack.vert
> > > @@ -0,0 +1,28 @@
> > > +/*
> > > + * [config]
> > > + * expect_result: fail
> > > + * glsl_version: 1.50
> > > + * require_extensions: GL_ARB_shader_image_load_store
> > > GL_ARB_shading_language_420pack
> > > + * [end config]
> > > + */
> > > +#version 150
> > > +#extension GL_ARB_shader_image_load_store: require
> > > +#extension GL_ARB_shading_language_420pack: require
> > > +
> > > +/*
> > > + * From the ARB_shader_image_load_store spec:
> > > + *
> > > + *   "Only one format qualifier may be specified for any image
> > > variable
> > > + *    declaration."
> > > + *
> > > + * From the ARB_shading_language_420pack spec:
> > > + *
> > > + *   "More than one layout qualifier may appear in a single
> > > declaration. If
> > > + *   the same layout-qualifier-name occurs in multiple layout
> > > qualifiers for
> > > + *   the same declaration, the last one overrides the former
> > > ones."
> > > + */
> > > +layout(rgba32f) layout(rgba32f) uniform image2D img;
> > > +
> > > +void main()
> > > +{
> > > +}
> > > diff --git
> > > a/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.frag
> > > b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.frag
> > > new file mode 100644
> > > index 0000000..f1bb73d
> > > --- /dev/null
> > > +++ b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.frag
> > > @@ -0,0 +1,29 @@
> > > +/*
> > > + * [config]
> > > + * expect_result: fail
> > > + * glsl_version: 1.50
> > > + * require_extensions: GL_ARB_shader_image_load_store
> > > GL_ARB_enhanced_layouts
> > > + * [end config]
> > > + */
> > > +#version 150
> > > +#extension GL_ARB_shader_image_load_store: require
> > > +#extension GL_ARB_enhanced_layouts: require
> > > +
> > > +/*
> > > + * From the ARB_shader_image_load_store spec:
> > > + *
> > > + *   "Only one format qualifier may be specified for any image
> > > variable
> > > + *    declaration."
> > > + *
> > > + *  From the ARB_enhanced_layouts spec:
> > > + *
> > > + *   "More than one layout qualifier may appear in a single
> > > declaration.
> > > + *   Additionally, the same layout-qualifier-name can occur
> > > multiple times
> > > + *   within a layout qualifier or across multiple layout
> > > qualifiers in the
> > > + *   same declaration"
> > > + */
> > > +layout(rgba32f, rgba32f) uniform image2D img;
> > > +
> > > +void main()
> > > +{
> > > +}
> > > diff --git
> > > a/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.vert
> > > b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.vert
> > > new file mode 100644
> > > index 0000000..f1bb73d
> > > --- /dev/null
> > > +++ b/tests/spec/arb_shader_image_load_store/compiler/declaration
> > > -format-qualifier-duplicate-enhanced-layouts.vert
> > > @@ -0,0 +1,29 @@
> > > +/*
> > > + * [config]
> > > + * expect_result: fail
> > > + * glsl_version: 1.50
> > > + * require_extensions: GL_ARB_shader_image_load_store
> > > GL_ARB_enhanced_layouts
> > > + * [end config]
> > > + */
> > > +#version 150
> > > +#extension GL_ARB_shader_image_load_store: require
> > > +#extension GL_ARB_enhanced_layouts: require
> > > +
> > > +/*
> > > + * From the ARB_shader_image_load_store spec:
> > > + *
> > > + *   "Only one format qualifier may be specified for any image
> > > variable
> > > + *    declaration."
> > > + *
> > > + *  From the ARB_enhanced_layouts spec:
> > > + *
> > > + *   "More than one layout qualifier may appear in a single
> > > declaration.
> > > + *   Additionally, the same layout-qualifier-name can occur
> > > multiple times
> > > + *   within a layout qualifier or across multiple layout
> > > qualifiers in the
> > > + *   same declaration"
> > > + */
> > > +layout(rgba32f, rgba32f) uniform image2D img;
> > > +
> > > +void main()
> > > +{
> > > +}
> > > _______________________________________________
> > > 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