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? I will write a follow-up patch adding std430 support 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