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

Nanley Chery nanleychery at gmail.com
Tue Oct 2 23:59:17 UTC 2018


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.

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