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