On Tue, 2016-01-19 at 18:08 -0800, Francisco Jerez wrote: > Timothy Arceri <timothy.arc...@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. > > > 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@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit