[Mesa-dev] [PATCH 1/4] glsl: add std430 layout support for AoA

Timothy Arceri t_arceri at yahoo.com.au
Tue Oct 6 04:09:31 PDT 2015


On Tue, 2015-10-06 at 10:26 +0200, Samuel Iglesias Gonsalvez wrote:
> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
> Cc: Timothy Arceri <t_arceri at yahoo.com.au>

This patch is Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>

Feel free to push this before the rest of my patches land.

> ---
>  src/glsl/glsl_types.cpp | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
> index c53ba20..3c7d257 100644
> --- a/src/glsl/glsl_types.cpp
> +++ b/src/glsl/glsl_types.cpp
> @@ -1573,8 +1573,8 @@ glsl_type::std430_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;
> @@ -1597,10 +1597,12 @@ glsl_type::std430_size(bool row_major) const
>     }
>  
>     if (this->is_array()) {
> -      if (this->fields.array->is_record())
> -         return this->length * this->fields.array
> ->std430_size(row_major);
> +      if (this->without_array()->is_record())
> +         return this->arrays_of_arrays_size() *
> +            this->without_array()->std430_size(row_major);
>        else
> -         return this->length * this->fields.array
> ->std430_base_alignment(row_major);
> +         return this->arrays_of_arrays_size() *
> +            this->without_array()->std430_base_alignment(row_major);
>     }
>  
>     if (this->is_record() || this->is_interface()) {


More information about the mesa-dev mailing list