[Mesa-dev] [PATCH 0/9] i965: Re-implement the gen9 void-extent ASTC WA with BLORP

Nanley Chery nanleychery at gmail.com
Fri Oct 5 18:33:36 UTC 2018


On Tue, Oct 02, 2018 at 04:59:17PM -0700, Nanley Chery wrote:
> On Wed, Sep 26, 2018 at 04:31:02PM -0700, Nanley Chery wrote:
> > The current workaround has two issues. It causes significant slow-downs [1] in
> > application startup times and uses the modified ASTC blocks for non-sampling
> > operations. This can result in incorrect texture downloads.
> > 
> > This series addresses the latter issue by keeping two copies of an ASTC
> > miptree: one that's been modified for the sampler bug (the shadow) and another
> > that hasn't (the main). The main copy is used for pixel transfer operations and
> > the shadow is used for sampling within a shader. The former issue is addressed
> > by exchanging multiple GTT-mapped memory accesses at texture upload time with a
> > render engine read and write at sampling time.
> > 
> > At the moment, I don't have any empirical data on the performance
> > implications nor on the bug fixes.

This series reduces the startup time of an internal benchmark from 7s to
0.6s. It doesn't seem to have any impact on the FPS numbers (if I'm
reading them correctly). The benchmark was run five times on a release
build of mesa.

-Nanley

> 
> I just sent out a piglit test to demonstrate the fixed texture download
> issue: https://patchwork.freedesktop.org/series/50474/
> 
> -Nanley
> 
> > I'm trying to get my hands on one of
> > the affected benchmarks. This series does pass our CI system.
> > 
> > 1. 17 seconds were saved by avoiding it in commit:
> >    3e56e4642fb5875b3f5c4eb34798ba9f3d827705
> > 
> > Nanley Chery (9):
> >   i965: Rename intel_mipmap_tree::r8stencil_* -> ::shadow_*
> >   i965/miptree: Allocate a shadow_mt for an ASTC WA
> >   i965/miptree: Track the staleness of the ASTC shadow
> >   intel/blorp_blit: Fix ptr deref in convert_to_uncompressed
> >   intel/blorp_blit: Add blorp_copy_astc_wa
> >   i965/blorp: Drop tmp_surfs from surf_for_miptree
> >   i965: Do a WA blit between ASTC main and shadow
> >   i965/surface_state: Use the ASTC shadow_mt if present
> >   i965/tex_image: Drop intelCompressedTexSubImage
> > 
> >  src/intel/blorp/blorp.h                       |   6 +
> >  src/intel/blorp/blorp_blit.c                  | 158 +++++++++++++++++-
> >  src/intel/blorp/blorp_priv.h                  |   1 +
> >  src/mesa/drivers/dri/i965/brw_blorp.c         |  56 ++++---
> >  src/mesa/drivers/dri/i965/brw_blorp.h         |   6 +
> >  src/mesa/drivers/dri/i965/brw_draw.c          |  16 ++
> >  .../drivers/dri/i965/brw_wm_surface_state.c   |  11 +-
> >  src/mesa/drivers/dri/i965/intel_mipmap_tree.c |  46 ++++-
> >  src/mesa/drivers/dri/i965/intel_mipmap_tree.h |  21 ++-
> >  src/mesa/drivers/dri/i965/intel_tex_image.c   |  87 ----------
> >  10 files changed, 276 insertions(+), 132 deletions(-)
> > 
> > -- 
> > 2.19.0
> > 


More information about the mesa-dev mailing list