From: Alyssa Rosenzweig Date: Thu, 22 Aug 2019 20:59:54 +0000 (-0700) Subject: pan/midgard: Fix writeout combining X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=272ce6f5a7cd646be495f1d71918476e94b29c4b;p=mesa.git pan/midgard: Fix writeout combining shader-db regression in the scheduler. Fixes: dff4986b1aa ("pan/midgard: Emit store_output branch just-in-time") total bundles in shared programs: 2055 -> 2019 (-1.75%) bundles in affected programs: 1055 -> 1019 (-3.41%) helped: 36 HURT: 0 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.35% max: 20.00% x̄: 6.71% x̃: 5.16% 95% mean confidence interval for bundles value: -1.00 -1.00 95% mean confidence interval for bundles %-change: -8.45% -4.97% Bundles are helped. total quadwords in shared programs: 3444 -> 3408 (-1.05%) quadwords in affected programs: 1897 -> 1861 (-1.90%) helped: 36 HURT: 0 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.19% max: 14.29% x̄: 3.97% x̃: 2.99% 95% mean confidence interval for quadwords value: -1.00 -1.00 95% mean confidence interval for quadwords %-change: -5.08% -2.86% Quadwords are helped. Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/panfrost/midgard/midgard_schedule.c b/src/panfrost/midgard/midgard_schedule.c index 399c259073e..e1877b314ce 100644 --- a/src/panfrost/midgard/midgard_schedule.c +++ b/src/panfrost/midgard/midgard_schedule.c @@ -64,10 +64,13 @@ is_single_component_mask(unsigned mask) static bool can_run_concurrent_ssa(midgard_instruction *first, midgard_instruction *second) { + /* Writeout has its own rules anyway */ + if (first->compact_branch || second->compact_branch) + return true; + /* Each instruction reads some registers and writes to a register. See * where the first writes */ - /* Figure out where exactly we wrote to */ int source = first->ssa_args.dest; int source_mask = first->mask;