[Mesa-dev] [PATCH 0/6] blitter improvement patches

Ben Widawsky benjamin.widawsky at intel.com
Mon Mar 9 21:43:30 PDT 2015

With the direct PBO upload, I guess the main thing this series offers (other
than cleanups), is we can now allocate large BOs as Y-tiled since the code
permits them to be blitted. Originally, the patch series did enable the use of
blitter more often, and it resulted in some huge perf gains. There are still
gains though.  I've lost the most recent performance data I had. It was around
10% on terrain, and nothing else outstanding. If perf data is a blocker for
merge, I will try to get to it eventually, but it will be a while.

This is the reworked version of that original series that boosted terrain
performance. After the review feedback, which were essentially cleanup type
things, I decided to take it a stuck further. Since the original work I had to
resolve some conflicts with a patch series Anuj landed to rework some of the
blitter code (since I also do that). It's possible I added bugs while doing
that, but piglit does seem happy.

It's been sitting idle for a long time for 2 reasons:
1. After the initial revision, I had a bug in the code which regressed
performance. Ken helped me find that, and now it goes back to a performance win.

2. I was noticing intermittent GL_OUT_OF_MEMORY errors which I was too lazy to
track down since I assumed it wasn't my fault. Well, I finally tracked it down
and fixed it:
commit 7aba4ab1f355ea1a5870b3deb4b295565132dfc5
Author: Ben Widawsky <benjamin.widawsky at intel.com>
Date:   Fri Mar 6 17:31:00 2015 -0800

    meta: Plug memory leak

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/intel_blit.c        | 120 +++++++++++++++++++++++---
 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 |  61 +++++++------
 src/mesa/drivers/dri/i965/intel_mipmap_tree.h |  21 +++++
 5 files changed, 206 insertions(+), 44 deletions(-)


More information about the mesa-dev mailing list