From 82db642042585ddb54a2da44730b082062188d65 Mon Sep 17 00:00:00 2001 From: Samuel Iglesias Gonsalvez Date: Tue, 22 Sep 2015 16:25:46 +0200 Subject: [PATCH] glsl: add std430 layout support for AoA Signed-off-by: Samuel Iglesias Gonsalvez Reviewed-by: Timothy Arceri --- 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 25927f6..b9cb97c 100644 --- a/src/glsl/glsl_types.cpp +++ b/src/glsl/glsl_types.cpp @@ -1557,8 +1557,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; @@ -1581,10 +1581,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()) { -- 2.7.4