From: Alyssa Rosenzweig Date: Fri, 19 Jul 2019 23:27:39 +0000 (-0700) Subject: panfrost/midgard: Reenable pipeline register creation X-Git-Tag: upstream/19.3.0~3899 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=055aa9b1f48728eb566b26d197d41068a8acaf84;p=platform%2Fupstream%2Fmesa.git panfrost/midgard: Reenable pipeline register creation This was disabled to permit regression-free RA work. Now that the spill code is in place, we can reenable, with some caveats about efficacy. Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/panfrost/midgard/midgard_schedule.c b/src/panfrost/midgard/midgard_schedule.c index 862b930..84b7b1b 100644 --- a/src/panfrost/midgard/midgard_schedule.c +++ b/src/panfrost/midgard/midgard_schedule.c @@ -769,19 +769,18 @@ schedule_program(compiler_context *ctx) g = allocate_registers(ctx, &spilled); } while(spilled && ((iter_count--) > 0)); - /* We would like to run RA after scheduling, but spilling can - * complicate this */ + /* After RA finishes, we schedule all at once */ - mir_foreach_block(ctx, block) { - schedule_block(ctx, block); - } -#if 0 - - /* Pipeline registers creation is a prepass before RA */ - mir_create_pipeline_registers(ctx); -#endif + mir_foreach_block(ctx, block) { + schedule_block(ctx, block); + } + /* Finally, we create pipeline registers as a peephole pass after + * scheduling. This isn't totally optimal, since there are cases where + * the usage of pipeline registers can eliminate spills, but it does + * save some power */ + mir_create_pipeline_registers(ctx); if (iter_count <= 0) { fprintf(stderr, "panfrost: Gave up allocating registers, rendering will be incomplete\n");