summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/zink/zink_compiler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/zink/zink_compiler.c')
-rw-r--r--src/gallium/drivers/zink/zink_compiler.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index 62ba11fd4a9..db42e2c73af 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -547,6 +547,11 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
if (nir->info.stage == MESA_SHADER_VERTEX)
create_vs_pushconst(nir);
+ else if (nir->info.stage == MESA_SHADER_TESS_CTRL ||
+ nir->info.stage == MESA_SHADER_TESS_EVAL) {
+ NIR_PASS_V(nir, nir_lower_indirect_derefs, nir_var_shader_in | nir_var_shader_out, UINT_MAX);
+ NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects, false);
+ }
/* only do uniforms -> ubo if we have uniforms, otherwise we're just
* screwing with the bindings for no reason