Timothy Arceri <[email protected]> writes: > On Tue, 2016-01-19 at 18:08 -0800, Francisco Jerez wrote: >> Timothy Arceri <[email protected]> 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. > That means that declaration-format-qualifier-duplicate-420pack.vert and .frag are exactly the same as declaration-format-qualifier-duplicate.vert and .frag except for the additional extension enable, and the same goes for declaration-format-qualifier-duplicate-enhanced-layouts.* vs declaration-format-qualifier-duplicate-within-layout.*. It would be really nice in order to keep the source code size under control if you could do this as is done in other image load/store compiler tests by adding an '${extra_extensions}' placeholder right after the header in the templates for declaration-format-qualifier-duplicate(-within-layout) and then pass the two alternatives to the cartesian product. It may also be useful to explain in a comment above the placeholder why it's interesting to test with and without the additional extension.
>>
>> > 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
>> > [email protected]
>> > http://lists.freedesktop.org/mailman/listinfo/piglit
signature.asc
Description: PGP signature
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
