diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2020-10-20 15:51:07 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2020-10-22 11:01:41 -0700 |
commit | 88a146ebf315e4e4279a36d5c097e7f578458db2 (patch) | |
tree | f3cb6bc7d98e661db21f16c8190e7778a6c213e3 | |
parent | 7e28fbd8bc558ca8c205fdf0e38c876f4b2c496b (diff) |
intel/compiler: Enable GCM for scalar vertex stagevertex-shader-gcm
The Dolphin übershaders are really, really hurt for spills and fills.
Ice Lake
total instructions in shared programs: 19796851 -> 19770546 (-0.13%)
instructions in affected programs: 553371 -> 527066 (-4.75%)
helped: 1508
HURT: 4
helped stats (abs) min: 1 max: 554 x̄: 17.45 x̃: 7
helped stats (rel) min: 0.23% max: 35.20% x̄: 3.57% x̃: 2.69%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 2.56% max: 2.56% x̄: 2.56% x̃: 2.56%
95% mean confidence interval for instructions value: -20.01 -14.79
95% mean confidence interval for instructions %-change: -3.76% -3.34%
Instructions are helped.
total cycles in shared programs: 488466944 -> 491159514 (0.55%)
cycles in affected programs: 14670824 -> 17363394 (18.35%)
helped: 1189
HURT: 392
helped stats (abs) min: 1 max: 4646 x̄: 48.59 x̃: 26
helped stats (rel) min: 0.03% max: 46.59% x̄: 3.75% x̃: 2.33%
HURT stats (abs) min: 1 max: 138856 x̄: 7016.20 x̃: 11
HURT stats (rel) min: <.01% max: 167.27% x̄: 8.66% x̃: 0.88%
95% mean confidence interval for cycles value: 1031.02 2375.14
95% mean confidence interval for cycles %-change: -1.29% -0.06%
Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).
total spills in shared programs: 10963 -> 14551 (32.73%)
spills in affected programs: 168 -> 3756 (2135.71%)
helped: 0
HURT: 27
total fills in shared programs: 11241 -> 16836 (49.77%)
fills in affected programs: 276 -> 5871 (2027.17%)
helped: 0
HURT: 27
total sends in shared programs: 1015255 -> 1014814 (-0.04%)
sends in affected programs: 2200 -> 1759 (-20.05%)
helped: 107
HURT: 0
helped stats (abs) min: 1 max: 12 x̄: 4.12 x̃: 3
helped stats (rel) min: 3.85% max: 42.86% x̄: 17.91% x̃: 14.29%
95% mean confidence interval for sends value: -4.91 -3.34
95% mean confidence interval for sends %-change: -20.15% -15.66%
Sends are helped.
-rw-r--r-- | src/intel/compiler/brw_nir.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index 245003c8dbb..065dd7c1b9e 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -565,6 +565,9 @@ brw_nir_optimize(nir_shader *nir, const struct brw_compiler *compiler, OPT(nir_opt_cse); OPT(nir_opt_combine_stores, nir_var_all); + if (is_scalar && nir->info.stage == MESA_SHADER_VERTEX) + OPT(nir_opt_gcm, true); + /* Passing 0 to the peephole select pass causes it to convert * if-statements that contain only move instructions in the branches * regardless of the count. |