On Wed, 2015-09-23 at 13:21 +0200, Samuel Iglesias Gonsálvez wrote: > On 22/09/15 15:30, Samuel Iglesias Gonsálvez wrote: > > Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> > > > > Forgot to say that we need to implement a similar patch for > std430_size() function, right?
Yeah I think so. > > I will write a follow-up patch adding std430 support for AoA. That would be great thanks. I assume there will also be other places in the SSBO series that might need updates for AoA? > > Sam > > > On 20/09/15 14:07, Timothy Arceri wrote: > > > --- > > > I noticed this problem after adding AoA support [1] to Ian's > > > random UBO test > > > script [2]. > > > > > > [1] http://patchwork.freedesktop.org/patch/59956/ > > > [2] http://cgit.freedesktop.org/~idr/piglit/log/?h=ubo-lolz > > > > > > src/glsl/glsl_types.cpp | 13 +++++++------ > > > 1 file changed, 7 insertions(+), 6 deletions(-) > > > > > > diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp > > > index 86f0ea5..952bd0a 100644 > > > --- a/src/glsl/glsl_types.cpp > > > +++ b/src/glsl/glsl_types.cpp > > > @@ -1310,8 +1310,8 @@ glsl_type::std140_size(bool row_major) > > > const > > > unsigned int array_len; > > > > > > if (this->is_array()) { > > > - element_type = this->fields.array; > > > - array_len = this->length; > > > + element_type = this->without_array(); > > > + array_len = this->arrays_of_arrays_size(); > > > } else { > > > element_type = this; > > > array_len = 1; > > > @@ -1344,12 +1344,13 @@ glsl_type::std140_size(bool row_major) > > > const > > > * the array are laid out in order, according to rule > > > (9). > > > */ > > > if (this->is_array()) { > > > - if (this->fields.array->is_record()) { > > > - return this->length * this->fields.array > > > ->std140_size(row_major); > > > + if (this->without_array()->is_record()) { > > > + return this->arrays_of_arrays_size() * > > > + this->without_array()->std140_size(row_major); > > > } else { > > > unsigned element_base_align = > > > - this->fields.array > > > ->std140_base_alignment(row_major); > > > - return this->length * MAX2(element_base_align, 16); > > > + this->without_array() > > > ->std140_base_alignment(row_major); > > > + return this->arrays_of_arrays_size() * > > > MAX2(element_base_align, 16); > > > } > > > } > > > > > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev