diff options
Diffstat (limited to 'src/gallium/drivers/zink/zink_compiler.c')
-rw-r--r-- | src/gallium/drivers/zink/zink_compiler.c | 5 |
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 |