intel/isl: Add a drm_modifier_get_default_aux_state helper
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:
parent
f3f42fd867
commit
400ffa748e
|
@ -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;
|
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
|
struct isl_extent2d ATTRIBUTE_CONST
|
||||||
isl_get_interleaved_msaa_px_size_sa(uint32_t samples);
|
isl_get_interleaved_msaa_px_size_sa(uint32_t samples);
|
||||||
|
|
||||||
|
|
|
@ -1075,8 +1075,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
|
||||||
* a worst case of compression.
|
* a worst case of compression.
|
||||||
*/
|
*/
|
||||||
enum isl_aux_state initial_state =
|
enum isl_aux_state initial_state =
|
||||||
mod_info->supports_clear_color ? ISL_AUX_STATE_COMPRESSED_CLEAR :
|
isl_drm_modifier_get_default_aux_state(image->modifier);
|
||||||
ISL_AUX_STATE_COMPRESSED_NO_CLEAR;
|
|
||||||
|
|
||||||
if (!create_ccs_buf_for_image(brw, image, mt, initial_state)) {
|
if (!create_ccs_buf_for_image(brw, image, mt, initial_state)) {
|
||||||
intel_miptree_release(&mt);
|
intel_miptree_release(&mt);
|
||||||
|
|
Loading…
Reference in New Issue