Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> On 01/20/2015 09:45 PM, Tapani Pälli wrote: > Fixes currently failing Piglit case > interface-blocks-name-reused-globally.vert > > v2: combine var declaration with assignment (Ian) > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/glsl/ast_to_hir.cpp | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp > index 811a955..1ba29f7 100644 > --- a/src/glsl/ast_to_hir.cpp > +++ b/src/glsl/ast_to_hir.cpp > @@ -5443,9 +5443,23 @@ ast_interface_block::hir(exec_list *instructions, > > state->struct_specifier_depth--; > > - if (!redeclaring_per_vertex) > + if (!redeclaring_per_vertex) { > validate_identifier(this->block_name, loc, state); > > + /* From section 4.3.9 ("Interface Blocks") of the GLSL 4.50 spec: > + * > + * "Block names have no other use within a shader beyond interface > + * matching; it is a compile-time error to use a block name at > global > + * scope for anything other than as a block name." > + */ > + ir_variable *var = state->symbols->get_variable(this->block_name); > + if (var && !var->type->is_interface()) { > + _mesa_glsl_error(&loc, state, "Block name `%s' is " > + "already used in the scope.", > + this->block_name); > + } > + } > + > const glsl_type *earlier_per_vertex = NULL; > if (redeclaring_per_vertex) { > /* Find the previous declaration of gl_PerVertex. If we're redeclaring >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev