From: Timothy Arceri Date: Wed, 6 Feb 2019 09:37:14 +0000 (+1100) Subject: st/glsl_to_nir: call nir_remove_dead_variables() after lowing local indirects X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d0af13cfb4165366f1568ce407ee180ea2b554cd;p=mesa.git st/glsl_to_nir: call nir_remove_dead_variables() after lowing local indirects Reviewed-by: Jason Ekstrand --- 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); } }