summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/glspirv.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/main/glspirv.c b/src/mesa/main/glspirv.c
index ed7ff29328c..87075a547cd 100644
--- a/src/mesa/main/glspirv.c
+++ b/src/mesa/main/glspirv.c
@@ -238,6 +238,14 @@ _mesa_spirv_to_nir(struct gl_context *ctx,
prog->Name);
nir_validate_shader(nir);
+ NIR_PASS_V(nir, nir_copy_prop);
+
+ /* Split member structs. We do this before lower_io_to_temporaries so that
+ * it doesn't lower system values to temporaries by accident.
+ */
+ NIR_PASS_V(nir, nir_split_var_copies);
+ NIR_PASS_V(nir, nir_split_per_member_structs);
+
return nir;
}