Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com>
Cc: Timothy Arceri <t_arc...@yahoo.com.au>
---
 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()) {
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to