diff --git a/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp b/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp index c7b8e0ba939..953c20c812d 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp @@ -421,14 +421,15 @@ r600_lower_tess_io(nir_shader *shader, enum mesa_prim prim_type) nir_foreach_block(block, impl) { - nir_foreach_instr_safe(instr, block) - { + bool progress_impl = false; + nir_foreach_instr_safe (instr, block) { if (instr->type != nir_instr_type_intrinsic) continue; if (r600_lower_tess_io_filter(instr, shader->info.stage)) - progress |= r600_lower_tess_io_impl(&b, instr, prim_type); + progress_impl |= r600_lower_tess_io_impl(&b, instr, prim_type); } + progress |= nir_progress(progress_impl, impl, nir_metadata_control_flow); } } return progress;