zink: Don't lower indirect derefs of temp arrays.

nir_to_spirv can handle it.  Cuts instructions in a turnip CS shader on
Aztec Ruins from 36k to 3k.

Part of #6115

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18374>
This commit is contained in:
Emma Anholt
2022-09-01 11:05:33 -07:00
committed by Marge Bot
parent 09f6acc4b7
commit e1f032acc3

View File

@@ -2998,7 +2998,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
ret->programs = _mesa_pointer_set_create(NULL);
simple_mtx_init(&ret->lock, mtx_plain);
nir_variable_mode indirect_derefs_modes = nir_var_function_temp;
nir_variable_mode indirect_derefs_modes = 0;
if (nir->info.stage == MESA_SHADER_TESS_CTRL ||
nir->info.stage == MESA_SHADER_TESS_EVAL)
indirect_derefs_modes |= nir_var_shader_in | nir_var_shader_out;