Again I think this is just because the spec is written against the 4.3 spec. I don't think this extension is intended to enable this feature.
On Sat, 2016-10-22 at 23:09 +0300, Andres Gomez wrote: > From the ARB_enhanced_layouts spec: > > "Additions to Chapter 4 "Variables and Types" of the OpenGL > Shading Language > > Section 4.4 "Layout Qualifiers" > > The existing last paragraph already says: > > "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." > > Expand it to say: > > "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. When the same layout-qualifier-name > occurs > multiple times, in a single declaration, the last > occurrence overrides > the former occurrence(s). Further, if such a layout- > qualifier-name > will effect subsequent declarations or other observable > behavior, it > is only the last occurrence that will have any effect, > behaving as if > the earlier occurrence(s) within the declaration are not > present. > This is also true for overriding layout-qualifier-names, > where one > overrides the other (e.g., row_major vs. column_major); > only the last > occurrence has any effect."" > > Signed-off-by: Andres Gomez <ago...@igalia.com> > --- > src/compiler/glsl/ast_type.cpp | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/compiler/glsl/ast_type.cpp > b/src/compiler/glsl/ast_type.cpp > index 48ee27e..02f96ea 100644 > --- a/src/compiler/glsl/ast_type.cpp > +++ b/src/compiler/glsl/ast_type.cpp > @@ -201,7 +201,8 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, > return false; > } > > - if (is_multiple_layouts_merge && !state->has_420pack_or_es31()) { > + if (is_multiple_layouts_merge > + && !state->has_420pack_or_es31() && !state- > >has_enhanced_layouts()) { > _mesa_glsl_error(loc, state, > "duplicate layout(...) qualifiers"); > return false; _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev