diff --git a/src/imagination/pco/pco_ir.c b/src/imagination/pco/pco_ir.c index 3c42b79138e..2ee5bd9fb83 100644 --- a/src/imagination/pco/pco_ir.c +++ b/src/imagination/pco/pco_ir.c @@ -28,7 +28,13 @@ void pco_process_ir(pco_ctx *ctx, pco_shader *shader) PCO_PASS(_, shader, pco_const_imms); PCO_PASS(_, shader, pco_opt); - PCO_PASS(_, shader, pco_dce); + + bool progress; + do { + progress = false; + PCO_PASS(progress, shader, pco_dce); + } while (progress); + /* TODO: schedule after RA instead as e.g. vecs may no longer be the first * time a drc result is used. */