Module: Mesa Branch: master Commit: 099b206ca7481c32ccd1628808785361299e88dd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=099b206ca7481c32ccd1628808785361299e88dd
Author: Jason Ekstrand <[email protected]> Date: Tue Sep 12 15:20:26 2017 -0700 intel/isl: Add a drm_modifier_get_default_aux_state helper Reviewed-by: Chad Versace <[email protected]> --- src/intel/isl/isl.h | 20 ++++++++++++++++++++ src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 3 +-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index ca4556ffcf..df275f85c4 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -1558,6 +1558,26 @@ isl_drm_modifier_has_aux(uint64_t modifier) return isl_drm_modifier_get_info(modifier)->aux_usage != ISL_AUX_USAGE_NONE; } +/** Returns the default isl_aux_state for the given modifier. + * + * All modified images are required to be kept out of the AUX_INVALID state + * but they may or may not actually be compressed and may or may not have + * clear color. This function returns the worst case aux_state that we need + * to assume when getting a surface from another process or API. + */ +static inline enum isl_aux_state +isl_drm_modifier_get_default_aux_state(uint64_t modifier) +{ + const struct isl_drm_modifier_info *mod_info = + isl_drm_modifier_get_info(modifier); + + if (!mod_info || mod_info->aux_usage == ISL_AUX_USAGE_NONE) + return ISL_AUX_STATE_AUX_INVALID; + + return mod_info->supports_clear_color ? ISL_AUX_STATE_COMPRESSED_CLEAR : + ISL_AUX_STATE_COMPRESSED_NO_CLEAR; +} + struct isl_extent2d ATTRIBUTE_CONST isl_get_interleaved_msaa_px_size_sa(uint32_t samples); diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 253d3a13f9..5b7cde82f6 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -1075,8 +1075,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw, * a worst case of compression. */ enum isl_aux_state initial_state = - mod_info->supports_clear_color ? ISL_AUX_STATE_COMPRESSED_CLEAR : - ISL_AUX_STATE_COMPRESSED_NO_CLEAR; + isl_drm_modifier_get_default_aux_state(image->modifier); if (!create_ccs_buf_for_image(brw, image, mt, initial_state)) { intel_miptree_release(&mt); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
