2015-08-20 6:37 GMT+02:00 Timothy Arceri <t_arc...@yahoo.com.au>: > These changes are also needed to allow linking of > struct and interface arrays of arrays. > --- > src/glsl/link_uniforms.cpp | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp > index 254086d..42f75e9 100644 > --- a/src/glsl/link_uniforms.cpp > +++ b/src/glsl/link_uniforms.cpp > @@ -72,6 +72,7 @@ void > program_resource_visitor::process(ir_variable *var) > { > const glsl_type *t = var->type; > + const glsl_type *t_without_array = var->type->without_array(); > const bool row_major = > var->data.matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR; > > @@ -141,12 +142,8 @@ program_resource_visitor::process(ir_variable *var) > char *name = ralloc_strdup(NULL, var->name); > recursion(var->type, &name, strlen(name), row_major, NULL, false); > ralloc_free(name); > - } else if (t->is_interface()) { > - char *name = ralloc_strdup(NULL, var->type->name); > - recursion(var->type, &name, strlen(name), row_major, NULL, false); > - ralloc_free(name); > - } else if (t->is_array() && t->fields.array->is_interface()) { > - char *name = ralloc_strdup(NULL, var->type->fields.array->name); > + } else if (t_without_array->is_interface()) { > + char *name = ralloc_strdup(NULL, t_without_array->name); > recursion(var->type, &name, strlen(name), row_major, NULL, false); > ralloc_free(name); > } else { > @@ -217,8 +214,8 @@ program_resource_visitor::recursion(const glsl_type *t, > char **name, > (*name)[name_length] = '\0'; > this->leave_record(t, *name, row_major); > } > - } else if (t->is_array() && (t->fields.array->is_record() > - || t->fields.array->is_interface())) { > + } else if (t->without_array()->is_record() > + || t->without_array()->is_interface()) {
I think we normally put the "||" on the previous line. Apart from that this looks correct and is Reviewed-by: Thomas Helland <thomashellan...@gmail.com> > if (record_type == NULL && t->fields.array->is_record()) > record_type = t->fields.array; > > @@ -810,8 +807,7 @@ link_update_uniform_buffer_variables(struct gl_shader > *shader) > > if (var->type->is_record()) { > sentinel = '.'; > - } else if (var->type->is_array() > - && var->type->fields.array->is_record()) { > + } else if (var->type->without_array()->is_record()) { > sentinel = '['; > } > > -- > 2.4.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev