[Mesa-dev] [PATCH 0/6] [REPOST] More blits

Ben Widawsky benjamin.widawsky at intel.com
Mon Aug 10 16:15:04 PDT 2015

This is a repost of a patch series from several months ago. The original
motivation was to allow blitting (and therefore, usage of Y-tiling on more

The original code for handling this stuff was horrendous. This patch series
improved our internal Terrain benchmark by a phenomenal amount. However, a few
patches from Jason (such as ef0499af25) achieved much of the same benefits with
arguably less complex code.

The patch series was still considered useful at that time, but after some rework
due to review feedback, perf regressions were present. Over time, I've fixed
these things and have the following (statistically) significant results (in
FPS). Note that these results are pre-rebase, from mesa master + the tiling
flags fixes from Matt, before they landed. There are some performance
regressions here, and worse, they are on "real" benchmarks for BDW. I am sort of
immune to spotting issues in the patches after dragging them around for so long.
It'd be great if someone else could potential figure out what is going on.

egypt			 -.56%
valley			  .86%
warsow			 -.91%

Batch7			-1.14%
HdrBloom		 -.94%
ShMapPcf		  .01%
TerrainFlyInst		17.32%
TerrainPanInst		 9.67%
VSDiffuse1		  .05%
fill (from gfxbench)	  .08%


Ben Widawsky (6):
  i965: Kill y_or_x variable in miptree tiling selection
  i965: Fix comments about blit constraints
  i965: Create and use #defines for blitter constraints
  i965: Extract blit height max
  i965: Attempt to blit for larger textures
  i965: Allow Y-tiled allocations for large surfaces

 src/mesa/drivers/dri/i965/brw_tex_layout.c    |  22 ++++-
 src/mesa/drivers/dri/i965/intel_blit.c        | 119 +++++++++++++++++++++++---
 src/mesa/drivers/dri/i965/intel_blit.h        |  33 +++++++
 src/mesa/drivers/dri/i965/intel_copy_image.c  |  15 ++--
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c |  34 +++-----
 src/mesa/drivers/dri/i965/intel_mipmap_tree.h |  28 ++++++
 6 files changed, 208 insertions(+), 43 deletions(-)


More information about the mesa-dev mailing list