glsl: push layout-qualifier-name values from variable declarations to global
authorAndres Gomez <agomez@igalia.com>
Thu, 6 Oct 2016 22:52:06 +0000 (01:52 +0300)
committerAndres Gomez <agomez@igalia.com>
Fri, 25 Nov 2016 11:18:30 +0000 (13:18 +0200)
commite5041c64094255fae6ca7327cfd75a7595442478
tree3e72bc58e990d3bf1b3a98230cbb0db7dfcd1e08
parent5132d0c7b695d838617bf586e730899c65361668
glsl: push layout-qualifier-name values from variable declarations to global

After the previous modifications in the merging of the
layout-qualifier-name values, we no longer push the final value in a
declaration to the global values.

This regression happens because we don't call for merging on the
right-most layout qualifier of a declaration which is also the
overriding one in case of multiple appearances.

Now, we add a new method to push these values to the global ones and
we call for this just after all the layout-qualifier collapsing has
happened in a declaration.

This simplifies how this was working in two ways; we make a clear
differentiation of when we are pushing this to the global values since
before it was mixed in the merging call and we only run this once all
the processing for layout-qualifiers in a declaration has happened.

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
src/compiler/glsl/ast.h
src/compiler/glsl/ast_type.cpp
src/compiler/glsl/glsl_parser.yy