[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