[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