[Mesa-dev] [PATCH 4/9] intel/compiler: More peephole_select for pre-Gen6

Ian Romanick idr at freedesktop.org
Thu Aug 30 05:35:43 UTC 2018


From: Ian Romanick <ian.d.romanick at intel.com>

No shader-db changes on any Gen6+ platform.

All of the shaders with cycles hurt by more than ~2% are from Master of
Orion.  All of the shaders have instructions helped.  It looks like the
pass enables some control flow to be converted to bcsels, then the
scheduler does dumb things.  These are new shaders (just added before
doing this shader-db run), so there's probably some low-hanging fruit.

Iron Lake
total instructions in shared programs: 8207949 -> 8207310 (<.01%)
instructions in affected programs: 84465 -> 83826 (-0.76%)
helped: 114
HURT: 26
helped stats (abs) min: 2 max: 18 x̄: 7.71 x̃: 9
helped stats (rel) min: 0.17% max: 13.73% x̄: 2.41% x̃: 1.05%
HURT stats (abs)   min: 2 max: 20 x̄: 9.23 x̃: 8
HURT stats (rel)   min: 0.70% max: 2.48% x̄: 1.66% x̃: 1.61%
95% mean confidence interval for instructions value: -5.84 -3.29
95% mean confidence interval for instructions %-change: -2.19% -1.12%
Instructions are helped.

total cycles in shared programs: 187478874 -> 187491364 (<.01%)
cycles in affected programs: 506734 -> 519224 (2.46%)
helped: 100
HURT: 40
helped stats (abs) min: 2 max: 76 x̄: 22.68 x̃: 16
helped stats (rel) min: 0.02% max: 6.16% x̄: 0.87% x̃: 0.63%
HURT stats (abs)   min: 4 max: 1402 x̄: 368.95 x̃: 30
HURT stats (rel)   min: 0.33% max: 23.12% x̄: 5.36% x̃: 1.43%
95% mean confidence interval for cycles value: 28.54 149.89
95% mean confidence interval for cycles %-change: 0.09% 1.74%
Cycles are HURT.

GM45
total instructions in shared programs: 5047454 -> 5047096 (<.01%)
instructions in affected programs: 46751 -> 46393 (-0.77%)
helped: 63
HURT: 13
helped stats (abs) min: 2 max: 29 x̄: 7.59 x̃: 9
helped stats (rel) min: 0.17% max: 13.73% x̄: 2.74% x̃: 1.04%
HURT stats (abs)   min: 2 max: 20 x̄: 9.23 x̃: 8
HURT stats (rel)   min: 0.66% max: 2.35% x̄: 1.58% x̃: 1.52%
95% mean confidence interval for instructions value: -6.49 -2.93
95% mean confidence interval for instructions %-change: -2.80% -1.19%
Instructions are helped.

total cycles in shared programs: 128068304 -> 128075484 (<.01%)
cycles in affected programs: 324560 -> 331740 (2.21%)
helped: 53
HURT: 23
helped stats (abs) min: 6 max: 76 x̄: 32.57 x̃: 32
helped stats (rel) min: 0.08% max: 4.74% x̄: 1.04% x̃: 0.79%
HURT stats (abs)   min: 4 max: 1400 x̄: 387.22 x̃: 40
HURT stats (rel)   min: 0.56% max: 19.94% x̄: 5.05% x̃: 1.49%
95% mean confidence interval for cycles value: 7.43 181.52
95% mean confidence interval for cycles %-change: -0.23% 1.83%
Inconclusive result (%-change mean confidence interval includes 0).

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/intel/compiler/brw_nir.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
index 04d399fd0b4..2eba6a42266 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src/intel/compiler/brw_nir.c
@@ -588,8 +588,8 @@ brw_nir_optimize(nir_shader *nir, const struct brw_compiler *compiler,
          (nir->info.stage == MESA_SHADER_TESS_CTRL ||
           nir->info.stage == MESA_SHADER_TESS_EVAL);
       OPT(nir_opt_peephole_select, 0, is_vec4_tessellation, false);
-      if (compiler->devinfo->gen >= 6)
-         OPT(nir_opt_peephole_select, 1, is_vec4_tessellation, true);
+      OPT(nir_opt_peephole_select, 1, is_vec4_tessellation,
+          compiler->devinfo->gen >= 6);
 
       OPT(nir_opt_intrinsics);
       OPT(nir_opt_algebraic);
-- 
2.14.4



More information about the mesa-dev mailing list