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

Nanley Chery nanleychery at gmail.com
Wed Sep 26 23:31:02 UTC 2018

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. 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:

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(-)


More information about the mesa-dev mailing list