summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/nir/nir_validate.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c
index 9cb6cf27a4e..dc7b5b5f112 100644
--- a/src/compiler/nir/nir_validate.c
+++ b/src/compiler/nir/nir_validate.c
@@ -448,10 +448,12 @@ validate_deref_instr(nir_deref_instr *instr, validate_state *state)
case nir_deref_type_array:
case nir_deref_type_array_wildcard:
- if (instr->mode == nir_var_shared) {
- /* Shared variables have a bit more relaxed rules because we need
- * to be able to handle array derefs on vectors. Fortunately,
- * nir_lower_io handles these just fine.
+ if (instr->mode == nir_var_ubo ||
+ instr->mode == nir_var_ssbo ||
+ instr->mode == nir_var_shared) {
+ /* Shared variables and UBO/SSBOs have a bit more relaxed rules
+ * because we need to be able to handle array derefs on vectors.
+ * Fortunately, nir_lower_io handles these just fine.
*/
validate_assert(state, glsl_type_is_array(parent->type) ||
glsl_type_is_matrix(parent->type) ||