[Mesa-dev] [PATCH 00/10] Die, blitter, die!

Jason Ekstrand jason at jlekstrand.net
Fri May 11 23:48:16 UTC 2018

This patch series completely kills off our usage of the hardware blitter
for Sandy Bridge and later.  On Sandy Bridge, the blitter was moved to
another ring and so using it incurs noticable synchronization overhead and,
at the same time, that synchronization is an endless source of GPU hangs on
SNB.  Some time around the Ivy Bridge time frame, we suspect that the
blitter ended up with somewhat slower paths to memory than the 3D engine so
it's slower in general.

To make matters worse, the blitter does not understand any sort of
compression at all and so using it frequently means having to do some sort
of resolve operation.  This is especially bad on gen9 where we have CCS
compression enabled on almost everything.  By using blorp for things like
miptree mapping, we can avoid decompressing and even get free compression
on unmap as-needed.

Jason Ekstrand (10):
  i965: Use meta for pixel ops on gen6+
  i965/blit: Delete intel_emit_linear_blit
  i965: Remove some unused includes of intel_blit.h
  i965: Don't fall back to the blitter in BlitFramebuffer
  i965: Delete the blitter path for CopyTexSubImage
  i965/miptree: Use blorp for validation tex copies on gen6+
  i965/miptree: Use blorp for blit maps on gen6+
  i965: Remove support for the BLT ring
  i965/miptree: Move the access_raw call to the individual map functions
  intel/blorp: Use linear formats for CCS_E clear colors in copies

 src/intel/blorp/blorp_blit.c                   |  4 +-
 src/mesa/drivers/dri/i965/brw_clear.c          |  1 -
 src/mesa/drivers/dri/i965/intel_batchbuffer.c  | 12 +---
 src/mesa/drivers/dri/i965/intel_blit.c         | 56 ----------------
 src/mesa/drivers/dri/i965/intel_blit.h         |  6 --
 src/mesa/drivers/dri/i965/intel_fbo.c          |  8 ---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c  | 92 +++++++++++++++++++-------
 src/mesa/drivers/dri/i965/intel_pixel_bitmap.c |  6 +-
 src/mesa/drivers/dri/i965/intel_pixel_copy.c   |  5 +-
 src/mesa/drivers/dri/i965/intel_pixel_draw.c   |  3 +-
 src/mesa/drivers/dri/i965/intel_pixel_read.c   |  1 -
 src/mesa/drivers/dri/i965/intel_tex_copy.c     | 58 ----------------
 src/mesa/drivers/dri/i965/intel_tex_image.c    |  1 -
 src/mesa/drivers/dri/i965/intel_tex_validate.c |  1 -
 14 files changed, 82 insertions(+), 172 deletions(-)


More information about the mesa-dev mailing list