From: Kevin Rogovin <kevin.rogo...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev