diff options
author | Kenneth Graunke <[email protected]> | 2016-11-29 05:20:20 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-07-13 20:18:54 -0700 |
commit | b2da1238012c751a8ad36c9a51d3fec46a292b0d (patch) | |
tree | c85bb598b003a1c4617bd0c9c179a24384f75c62 /src/intel/compiler/brw_fs.h | |
parent | c9ef27e77ba0884c3716a3c39640e987200ea46e (diff) |
i965: Use pushed UBO data in the scalar backend.
This actually takes advantage of the newly pushed UBO data, avoiding
pull loads.
Improves performance in GLBenchmark Manhattan 3.1 by:
HSW: ~1%, BDW/SKL/KBL GT2: 3-4%, SKL GT4: 7-8%, APL: 4-5%.
(thanks to Eero Tamminen for these numbers)
shader-db results on Skylake, ignoring programs with spill/fill changes:
total instructions in shared programs: 13963994 -> 13651893 (-2.24%)
instructions in affected programs: 4250328 -> 3938227 (-7.34%)
helped: 28527
HURT: 0
total cycles in shared programs: 179808608 -> 172535170 (-4.05%)
cycles in affected programs: 79720410 -> 72446972 (-9.12%)
helped: 26951
HURT: 1248
LOST: 46
GAINED: 21
Many "Deus Ex: Mankind Divided" shaders which already spilled end up
spill a lot more (about 240 programs hurt, 9 helped). The cycle
estimator suggests this is still overall a win (-0.23% in cycle counts)
presumably because we trade pull loads for fills.
v2: Drop "PULL" environment variable left in for initial debugging
(caught by Matt).
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.h')
-rw-r--r-- | src/intel/compiler/brw_fs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h index beb0d971b4c..f1ba193de7e 100644 --- a/src/intel/compiler/brw_fs.h +++ b/src/intel/compiler/brw_fs.h @@ -50,6 +50,8 @@ offset(const fs_reg ®, const brw::fs_builder &bld, unsigned delta) return offset(reg, bld.dispatch_width(), delta); } +#define UBO_START ((1 << 16) - 4) + /** * The fragment shader front-end. * |