glsl: allow for AoA in calculating offset to ubo start region
authorTimothy Arceri <t_arceri@yahoo.com.au>
Fri, 9 Oct 2015 11:00:20 +0000 (22:00 +1100)
committerTimothy Arceri <t_arceri@yahoo.com.au>
Thu, 15 Oct 2015 10:42:24 +0000 (21:42 +1100)
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/glsl/lower_ubo_reference.cpp

index 96fb91b..1fbb09d 100644 (file)
@@ -397,7 +397,7 @@ lower_ubo_reference_visitor::setup_for_load_or_store(ir_variable *var,
             if (deref_array->array->type->is_double())
                array_stride *= 2;
             *matrix_columns = deref_array->array->type->matrix_columns;
-         } else if (deref_array->type->is_interface()) {
+         } else if (deref_array->type->without_array()->is_interface()) {
             /* We're processing an array dereference of an interface instance
              * array. The thing being dereferenced *must* be a variable
              * dereference because interfaces cannot be embedded in other
@@ -406,7 +406,6 @@ lower_ubo_reference_visitor::setup_for_load_or_store(ir_variable *var,
              * interface instance array will have the same offsets relative to
              * the base of the block that backs them.
              */
-            assert(deref_array->array->as_dereference_variable());
             deref = deref_array->array->as_dereference();
             break;
          } else {