nir: Properly invalidate metadata in nir_remove_dead_variables().

v2: Preserve live_variables too (Jason).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
This commit is contained in:
Kenneth Graunke 2015-11-02 21:28:26 -08:00
parent 8bb44510fc
commit 4cb7546066
1 changed files with 8 additions and 2 deletions

View File

@ -126,8 +126,14 @@ nir_remove_dead_variables(nir_shader *shader)
progress = remove_dead_vars(&shader->globals, live) || progress;
nir_foreach_overload(shader, overload) {
if (overload->impl)
progress = remove_dead_vars(&overload->impl->locals, live) || progress;
if (overload->impl) {
if (remove_dead_vars(&overload->impl->locals, live)) {
nir_metadata_preserve(overload->impl, nir_metadata_block_index |
nir_metadata_dominance |
nir_metadata_live_variables);
progress = true;
}
}
}
_mesa_set_destroy(live, NULL);