OSDN Git Service

glsl/parser: handle multiple layout sections with AST nodes.
authorDave Airlie <airlied@redhat.com>
Mon, 23 May 2016 05:55:06 +0000 (15:55 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 23 May 2016 06:20:01 +0000 (16:20 +1000)
For geometry/compute inputs and tess control outputs, we create
an AST node to keep track of some things. However if we have
multiple layout sections, we don't ever link the node into the AST.

This is because we create the node on the rightmost layout declaration
and don't pass it back in so it gets linked at the end of the parsing
of the rightmost.

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/compiler/glsl/glsl_parser.yy

index 09e346d..3885688 100644 (file)
@@ -2859,6 +2859,7 @@ layout_in_defaults:
                 merge_in_qualifier(& @1, state, $1, $$, false)) {
             YYERROR;
          }
+         $$ = $2;
       }
    }
    | layout_qualifier IN_TOK ';'
@@ -2883,6 +2884,7 @@ layout_out_defaults:
                 merge_out_qualifier(& @1, state, $1, $$, false)) {
             YYERROR;
          }
+         $$ = $2;
       }
    }
    | layout_qualifier OUT_TOK ';'