Mesa (master): glsl: allow duplicate layout-qualifier-names

Timothy Arceri tarceri at kemper.freedesktop.org
Tue Jan 19 21:07:00 UTC 2016


Module: Mesa
Branch: master
Commit: c8b8c578d145f90794611602eb66fc7d3f1df033
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8b8c578d145f90794611602eb66fc7d3f1df033

Author: Timothy Arceri <timothy.arceri at collabora.com>
Date:   Fri Jan 15 11:01:25 2016 +1100

glsl: allow duplicate layout-qualifier-names

This is added by ARB_enhanced_layouts although it doesn't fit
into any of the six main changes so we enable this 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"

Reviewed-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

---

 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;




More information about the mesa-commit mailing list