summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/vtxfmt.h
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2019-07-17 14:56:18 -0700
committerFrancisco Jerez <[email protected]>2019-08-12 13:17:58 -0700
commit9406b3a5c16fd034d2f2db828f2f833c336683f9 (patch)
tree99545adc248da95d3b3d3cdf18f618a7a3759930 /src/mesa/main/vtxfmt.h
parentb1965831e41c97fbfb53b2c648ae773a4dac32fa (diff)
i965/gen9: Optimize slice and subslice load balancing behavior.
The default pixel hashing mode settings used for slice and subslice load balancing are far from optimal under certain conditions (see the comments below for the gory details). The top-of-the-line GT4 parts suffer from a particularly severe performance problem currently due to a subslice load balancing issue. Fixing this seems to improve graphics performance across the board for most of the benchmarks in my test set, up to ~20% in some cases, e.g. from SKL GT4: unigine/valley: 3.44% ±0.11% gfxbench/gl_manhattan31: 3.99% ±0.13% gputest/pixmark_piano: 7.95% ±0.33% synmark/OglTexFilterAniso: 15.22% ±0.07% synmark/OglTexMem128: 22.26% ±0.06% Lower-end platforms are also affected by some subslice load imbalance to a lesser degree, especially during CCS resolve and fast clear operations, which are handled specially here due to rasterization ocurring in reduced CCS coordinates, which changes the semantics of the pixel hashing mode settings. No regressions seen during my tests on some SKL, KBL and BXT configurations. Additional benchmark reports welcome on any Gen9 platforms (that includes anything with Skylake, Broxton, Kabylake, Geminilake, Coffeelake, Whiskey Lake, Comet Lake or Amber Lake in your renderer string). P.S.: A similar problem is likely to be present on other non-Gen9 platforms, especially for CCS resolve and fast clear operations. Will follow-up with additional patches fixing the hashing mode for those once I have enough performance data to justify it. Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/main/vtxfmt.h')
0 files changed, 0 insertions, 0 deletions