[Mesa-dev] [PATCH 3/5] glsl: allow duplicate layout-qualifier-names

Timothy Arceri timothy.arceri at collabora.com
Thu Jan 14 18:45:50 PST 2016


This is added by ARB_enhanced_layouts although it doesn't fit
into any of the six main changes so enable it independently.

>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"

Cc: Matt Turner <mattst88 at gmail.com>
---
 src/glsl/ast_type.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/glsl/ast_type.cpp b/src/glsl/ast_type.cpp
index 1f675b2..4e75016 100644
--- a/src/glsl/ast_type.cpp
+++ b/src/glsl/ast_type.cpp
@@ -157,7 +157,8 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
       allowed_duplicates_mask.flags.i |=
          stream_layout_mask.flags.i;
 
-   if ((this->flags.i & q.flags.i & ~allowed_duplicates_mask.flags.i) != 0) {
+   if (!state->has_enhanced_layouts() &&
+       (this->flags.i & q.flags.i & ~allowed_duplicates_mask.flags.i) != 0) {
       _mesa_glsl_error(loc, state,
 		       "duplicate layout qualifiers used");
       return false;
-- 
2.4.3



More information about the mesa-dev mailing list