From e0eeba6cbb0d02f3f8a3a8e660328273d2e5f40c Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Mon, 8 Nov 2021 19:13:38 +0100 Subject: [PATCH] ir3/postsched: Only prefer tex/sfu if they are soft-ready MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise we schedule an SFU depending on a tex as soon as the tex is scheduled, which is very much not what we want. Note that sstall is helped more than nops are hurt, and the shaders with the largest nop regressions also have sstall helped. However (sy) is also very much helped. total nops in shared programs: 345482 -> 345986 (0.15%) nops in affected programs: 5731 -> 6235 (8.79%) helped: 15 HURT: 81 helped stats (abs) min: 1 max: 9 x̄: 3.27 x̃: 3 helped stats (rel) min: 0.50% max: 16.00% x̄: 8.55% x̃: 10.26% HURT stats (abs) min: 1 max: 72 x̄: 6.83 x̃: 4 HURT stats (rel) min: 0.57% max: 400.00% x̄: 32.50% x̃: 13.16% 95% mean confidence interval for nops value: 3.34 7.16 95% mean confidence interval for nops %-change: 13.07% 39.10% Nops are HURT. total sstall in shared programs: 133804 -> 132381 (-1.06%) sstall in affected programs: 4743 -> 3320 (-30.00%) helped: 68 HURT: 24 helped stats (abs) min: 1 max: 153 x̄: 21.88 x̃: 8 helped stats (rel) min: 1.79% max: 100.00% x̄: 33.20% x̃: 28.00% HURT stats (abs) min: 1 max: 11 x̄: 2.71 x̃: 2 HURT stats (rel) min: 1.02% max: 200.00% x̄: 17.73% x̃: 5.59% 95% mean confidence interval for sstall value: -22.05 -8.89 95% mean confidence interval for sstall %-change: -27.60% -12.22% Sstall are helped. total (ss) in shared programs: 35471 -> 35481 (0.03%) (ss) in affected programs: 462 -> 472 (2.16%) helped: 9 HURT: 15 helped stats (abs) min: 1 max: 2 x̄: 1.11 x̃: 1 helped stats (rel) min: 4.17% max: 33.33% x̄: 14.00% x̃: 7.69% HURT stats (abs) min: 1 max: 3 x̄: 1.33 x̃: 1 HURT stats (rel) min: 1.19% max: 50.00% x̄: 12.27% x̃: 8.33% 95% mean confidence interval for (ss) value: -0.14 0.97 95% mean confidence interval for (ss) %-change: -5.11% 9.94% Inconclusive result (value mean confidence interval includes 0). total (sy) in shared programs: 13522 -> 13288 (-1.73%) (sy) in affected programs: 422 -> 188 (-55.45%) helped: 22 HURT: 1 helped stats (abs) min: 1 max: 21 x̄: 10.68 x̃: 10 helped stats (rel) min: 8.00% max: 94.44% x̄: 56.58% x̃: 56.94% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 25.00% max: 25.00% x̄: 25.00% x̃: 25.00% 95% mean confidence interval for (sy) value: -13.18 -7.17 95% mean confidence interval for (sy) %-change: -65.48% -40.59% (sy) are helped. Part-of: --- src/freedreno/ir3/ir3_postsched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/freedreno/ir3/ir3_postsched.c b/src/freedreno/ir3/ir3_postsched.c index f30b5b0d454..3e6cd9baf15 100644 --- a/src/freedreno/ir3/ir3_postsched.c +++ b/src/freedreno/ir3/ir3_postsched.c @@ -256,7 +256,7 @@ choose_instr(struct ir3_postsched_ctx *ctx) /* Next prioritize expensive instructions: */ foreach_sched_node (n, &ctx->dag->heads) { - unsigned d = node_delay(ctx, n); + unsigned d = node_delay_soft(ctx, n); if (d > 0) continue; @@ -269,7 +269,7 @@ choose_instr(struct ir3_postsched_ctx *ctx) } if (chosen) { - di(chosen->instr, "csp: chose (sfu/tex, hard ready)"); + di(chosen->instr, "csp: chose (sfu/tex, soft ready)"); return chosen->instr; }