diff --git a/src/compiler/nir/nir_lower_shader_calls.c b/src/compiler/nir/nir_lower_shader_calls.c index d9e2a33966c..624ede07a9f 100644 --- a/src/compiler/nir/nir_lower_shader_calls.c +++ b/src/compiler/nir/nir_lower_shader_calls.c @@ -2050,6 +2050,8 @@ nir_lower_shader_calls(nir_shader *shader, for (unsigned i = 0; i < num_calls; i++) { nir_instr *resume_instr = lower_resume(resume_shaders[i], i); replace_resume_with_halt(resume_shaders[i], resume_instr); + /* Remove CF after halt before nir_opt_if(). */ + nir_opt_dead_cf(resume_shaders[i]); /* Remove the dummy blocks added by flatten_resume_if_ladder() */ nir_opt_if(resume_shaders[i], nir_opt_if_optimize_phi_true_false); nir_opt_dce(resume_shaders[i]);