diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-08-22 13:59:54 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-08-22 14:03:23 -0700 |
commit | 272ce6f5a7cd646be495f1d71918476e94b29c4b (patch) | |
tree | 01ba6fa43a99376c0963a4553858ed1a8f68d531 /src/panfrost/midgard/midgard_schedule.c | |
parent | 2c5ba2ee6ea68aa3062156d1a4abfc3b2556775d (diff) |
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 <[email protected]>
Diffstat (limited to 'src/panfrost/midgard/midgard_schedule.c')
-rw-r--r-- | src/panfrost/midgard/midgard_schedule.c | 5 |
1 files changed, 4 insertions, 1 deletions
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; |