On 08/19/2015 09:37 PM, Timothy Arceri wrote: > V2: move single dimensional array detection into a helper > > Signed-off-by: Timothy Arceri <t_arc...@yahoo.com.au> > Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> > --- > src/glsl/ast.h | 8 ++++++++ > src/glsl/ast_to_hir.cpp | 3 ++- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/glsl/ast.h b/src/glsl/ast.h > index d8c6cea..ab94cb2 100644 > --- a/src/glsl/ast.h > +++ b/src/glsl/ast.h > @@ -338,6 +338,14 @@ public: > array_dimensions.push_tail(&dim->link); > } > > + bool is_single_dimension()
I'd make this const... I believe all the list functions used here have const versions. With that change (or without it if it requires additional list overloads), this patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > + { > + return (this->is_unsized_array && this->array_dimensions.is_empty()) || > + (!this->is_unsized_array && > + this->array_dimensions.tail_pred->prev != NULL && > + this->array_dimensions.tail_pred->prev->is_head_sentinel()); > + } > + > virtual void print(void) const; > > /* If true, this means that the array has an unsized outermost dimension. > */ > diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp > index 06cd6a5..5ee02ed 100644 > --- a/src/glsl/ast_to_hir.cpp > +++ b/src/glsl/ast_to_hir.cpp > @@ -5962,7 +5962,8 @@ ast_interface_block::hir(exec_list *instructions, > _mesa_shader_stage_to_string(state->stage)); > } > if (this->instance_name == NULL || > - strcmp(this->instance_name, "gl_in") != 0 || > this->array_specifier == NULL) { > + strcmp(this->instance_name, "gl_in") != 0 || > this->array_specifier == NULL || > + !this->array_specifier->is_single_dimension()) { > _mesa_glsl_error(&loc, state, > "gl_PerVertex input must be redeclared as " > "gl_in[]"); > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev