From 114f87c1c70e56587cbc3d53f7593b633a008028 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Mon, 19 Jul 2021 10:16:56 -0700 Subject: [PATCH] iris: Set DISABLE_AUX_BIT for AUX_USAGE_NONE modifiers This avoids unnecessary surface padding on TGL+. Also, drop some of the logic to handle modifiers in iris_resource_configure_aux as the bit now causes it to be handled implicitly. Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/iris_resource.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index cfc6ff839a5..35dc31c3e67 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -635,6 +635,9 @@ iris_resource_configure_main(const struct iris_screen *screen, isl_surf_usage_flags_t usage = 0; + if (res->mod_info && res->mod_info->aux_usage == ISL_AUX_USAGE_NONE) + usage |= ISL_SURF_USAGE_DISABLE_AUX_BIT; + if (templ->usage == PIPE_USAGE_STAGING) usage |= ISL_SURF_USAGE_STAGING_BIT; @@ -730,24 +733,13 @@ iris_resource_configure_aux(struct iris_screen *screen, { const struct intel_device_info *devinfo = &screen->devinfo; - /* Try to create the auxiliary surfaces allowed by the modifier or by - * the user if no modifier is specified. - */ - assert(!res->mod_info || - res->mod_info->aux_usage == ISL_AUX_USAGE_NONE || - res->mod_info->aux_usage == ISL_AUX_USAGE_CCS_E || - res->mod_info->aux_usage == ISL_AUX_USAGE_GFX12_CCS_E || - res->mod_info->aux_usage == ISL_AUX_USAGE_MC); - const bool has_mcs = isl_surf_get_mcs_surf(&screen->isl_dev, &res->surf, &res->aux.surf); const bool has_hiz = !INTEL_DEBUG(DEBUG_NO_HIZ) && isl_surf_get_hiz_surf(&screen->isl_dev, &res->surf, &res->aux.surf); - const bool has_ccs = - ((!res->mod_info && !INTEL_DEBUG(DEBUG_NO_RBC)) || - (res->mod_info && res->mod_info->aux_usage != ISL_AUX_USAGE_NONE)) && + const bool has_ccs = !INTEL_DEBUG(DEBUG_NO_RBC) && iris_get_ccs_surf(&screen->isl_dev, &res->surf, &res->aux.surf, &res->aux.extra_aux.surf, 0);