mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
st/nir: Call nir_remove_unused_variables() in the opt loop
This prevents regressions when disabling indirect lowering. Sometimes the only use of an input array was copying it to the array created by nir_lower_io_to_temporaries, and without lowering indirects we wouldn't have eliminated the temporary array until after linking, which was too late to remove unused code in the producer. No shader-db changes with radeonsi NIR. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
71a6794200
commit
7d2d7b5d5f
1 changed files with 10 additions and 0 deletions
|
|
@ -232,6 +232,16 @@ st_nir_opts(nir_shader *nir, bool scalar)
|
|||
progress = false;
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_vars_to_ssa);
|
||||
|
||||
/* Linking deals with unused inputs/outputs, but here we can remove
|
||||
* things local to the shader in the hopes that we can cleanup other
|
||||
* things. This pass will also remove variables with only stores, so we
|
||||
* might be able to make progress after it.
|
||||
*/
|
||||
NIR_PASS(progress, nir, nir_remove_dead_variables,
|
||||
(nir_variable_mode)(nir_var_function_temp |
|
||||
nir_var_shader_temp |
|
||||
nir_var_mem_shared));
|
||||
|
||||
NIR_PASS(progress, nir, nir_opt_copy_prop_vars);
|
||||
NIR_PASS(progress, nir, nir_opt_dead_write_vars);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue