[Mesa-dev] [PATCH v4 0/3] i965: ASTC5x5 workaround

kevin.rogovin at intel.com kevin.rogovin at intel.com
Thu Mar 8 12:53:21 UTC 2018


From: Kevin Rogovin <kevin.rogovin at intel.com>

This patch series implements a needed workaround for Gen9 for ASTC5x5
sampler reads. The crux of the work around is to make sure that the
sampler does not read an ASTC5x5 texture and a surface with an auxilary
buffer without having a texture cache invalidate and command streamer
stall between such accesses.

With this patch series applied to the (current) master branch of mesa,
carchase works on my SKL GT4.

v4:
  Reduce additions to brw_context to a single enum.
  (requested by Jason Ekstrand)

  Rather than having a field in brw_context stating
  if the workaround is needed, have a function.
  (requested by Jason Ekstrand)

  Do not restore disable_aux argument to
  intel_miptree_prepare_texture().
  (requested by Jason Ekstrand)

  Place all resolve logic for astc5x5 workaround
  in brw_predraw_resolve_inputs().
  (requested by Jason Ekstrand)

  Changes to behavior of work around internals to that
  mode must be NONE if the workaround is not needed.

  Some patch squashing for changes in how resolve logic
  for astc5x5 workaround is implemented.

  Have blorp detect internally if astc5x5 or auxilary
  buffers are read from src.
  (requested by Jason Ekstrand)

v3:
  Rebase against current master; this required an additional
  patch to restore the disable_aux argument to
  intel_miptree_prepare_texture().

  Minor polishing of patches in mid-series for cleanness. 

v2:
  Rename workaround functions from brw_ to gen9_
  (suggested/requested by Topi Pohjolainen).

  Place texture resolve to avoid using auxilary surface
  when ASTC5x5 is detected in brw_predraw_resolve_inputs()
  instead of another dedicated function; doing so allows
  one to avoid walking the textures again.
  (suggested/requested by Topi Pohjolainen).

  Emit command streamer stall in addition to texture
  invalidate.
  (original short-coming caught by Jason Ekstrand)

  Place workaround function in (new) dedicated file.

  Minor patch re-ordering to accomodate changes.


Kevin Rogovin (3):
  i965: define astx5x5 workaround infrastructure
  i965: prevent using auxilary buffers when an astc5x5 texture is
    present
  i965: ASTC5x5 workaround logic for blorp

 src/intel/blorp/blorp.c                          | 16 ++++++
 src/intel/blorp/blorp.h                          |  6 ++
 src/mesa/drivers/dri/i965/Makefile.sources       |  1 +
 src/mesa/drivers/dri/i965/brw_compute.c          |  4 +-
 src/mesa/drivers/dri/i965/brw_context.c          |  2 +
 src/mesa/drivers/dri/i965/brw_context.h          | 30 +++++++++-
 src/mesa/drivers/dri/i965/brw_draw.c             | 73 +++++++++++++++++++++---
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 15 ++++-
 src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c      | 24 ++++++++
 src/mesa/drivers/dri/i965/genX_blorp_exec.c      |  9 +++
 src/mesa/drivers/dri/i965/meson.build            |  1 +
 11 files changed, 167 insertions(+), 14 deletions(-)
 create mode 100644 src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c

-- 
2.16.2



More information about the mesa-dev mailing list