[Mesa-dev] [PATCH V6 18/27] glsl: add std140 layout support for AoA
Ian Romanick
idr at freedesktop.org
Tue Oct 6 13:15:51 PDT 2015
On 09/28/2015 07:42 PM, Timothy Arceri wrote:
> Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
> src/glsl/glsl_types.cpp | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
> index 6664a47..cc2f102 100644
> --- a/src/glsl/glsl_types.cpp
> +++ b/src/glsl/glsl_types.cpp
> @@ -1330,8 +1330,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();
There are some mixed tabs and spaces in this patch. With those fixed,
this patch is
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> } else {
> element_type = this;
> array_len = 1;
> @@ -1364,12 +1364,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);
> + unsigned element_base_align =
> + this->without_array()->std140_base_alignment(row_major);
> + return this->arrays_of_arrays_size() * MAX2(element_base_align, 16);
> }
> }
>
>
More information about the mesa-dev
mailing list