[Mesa-dev] [PATCH 4/6] i965: add arrays of arrays support for varyings

Timothy Arceri t_arceri at yahoo.com.au
Sat Aug 8 22:35:29 PDT 2015


---
 src/mesa/drivers/dri/i965/brw_fs.cpp     | 4 ++--
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index ce1edc3..620ce13 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1053,11 +1053,11 @@ fs_visitor::emit_general_interpolation(fs_reg attr, const char *name,
    unsigned int array_elements;
 
    if (type->is_array()) {
-      array_elements = type->length;
+      array_elements = type->arrays_of_arrays_size();
       if (array_elements == 0) {
          fail("dereferenced array '%s' has length 0\n", name);
       }
-      type = type->fields.array;
+      type = type->without_array();
    } else {
       array_elements = 1;
    }
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index ee964a0..c5e475c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -78,7 +78,8 @@ fs_visitor::nir_setup_inputs(nir_shader *shader)
          const unsigned components = t->components();
          const unsigned cols = t->matrix_columns;
          const unsigned elts = t->vector_elements;
-         unsigned array_length = var->type->is_array() ? var->type->length : 1;
+         unsigned array_length =
+            var->type->is_array() ? var->type->arrays_of_arrays_size() : 1;
          for (unsigned i = 0; i < array_length; i++) {
             for (unsigned j = 0; j < cols; j++) {
                for (unsigned k = 0; k < elts; k++) {
-- 
2.4.3



More information about the mesa-dev mailing list