Track whether or not the ASTC shadow miptree will need to be updated prior to sampling. --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 5 ++++- src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 5e99b563102..090e20e1d70 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -2451,8 +2451,11 @@ intel_miptree_finish_write(struct brw_context *brw, switch (mt->aux_usage) { case ISL_AUX_USAGE_NONE: - if (mt->format == MESA_FORMAT_S_UINT8 && devinfo->gen <= 7) + if (mt->format == MESA_FORMAT_S_UINT8 && devinfo->gen <= 7) { mt->shadow_needs_update = true; + } else if (intel_miptree_has_astc_shadow(mt)) { + mt->shadow_needs_update = true; + } break; case ISL_AUX_USAGE_MCS: diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h index b22514de386..3ae0117d68f 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h @@ -726,6 +726,12 @@ intel_miptree_blt_pitch(struct intel_mipmap_tree *mt) return pitch; } +static inline bool +intel_miptree_has_astc_shadow(const struct intel_mipmap_tree *mt) +{ + return _mesa_get_format_layout(mt->format) == MESA_FORMAT_LAYOUT_ASTC && + mt->shadow_mt != NULL; +} #ifdef __cplusplus } #endif -- 2.19.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev