From d0af13cfb4165366f1568ce407ee180ea2b554cd Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 6 Feb 2019 20:37:14 +1100 Subject: [PATCH] st/glsl_to_nir: call nir_remove_dead_variables() after lowing local indirects Reviewed-by: Jason Ekstrand --- src/mesa/state_tracker/st_glsl_to_nir.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index 5fc87354624..686c243e508 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -626,6 +626,13 @@ st_nir_link_shaders(nir_shader **producer, nir_shader **consumer, bool scalar) st_nir_opts(*producer, scalar); st_nir_opts(*consumer, scalar); + + /* Lowering indirects can cause varying to become unused. + * nir_compact_varyings() depends on all dead varyings being removed so + * we need to call nir_remove_dead_variables() again here. + */ + NIR_PASS_V(*producer, nir_remove_dead_variables, nir_var_shader_out); + NIR_PASS_V(*consumer, nir_remove_dead_variables, nir_var_shader_in); } } -- 2.30.2