isl,iris: Move the extra_aux_surf logic into iris

This gets rid of the awkward interface for isl_surf_get_ccs_surf where
we passed it two aux surfaces and it was supposed to fill out the second
one based on whether or not the first one already had stuff in it.
Instead, we now pass it three well-labled surfaces: surf,
hiz_or_mcs_surf, and ccs_surf which have obvious meanings.  This does
mean that iris has to carry a bit of logic and we have to flip
parameters around in all the callers.  But the resulting interface is
much cleaner.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479>
This commit is contained in:
Jason Ekstrand
2021-06-23 16:48:36 -05:00
committed by Marge Bot
parent 37f76aab1c
commit 94a52bc85c
7 changed files with 40 additions and 33 deletions

View File

@@ -465,8 +465,8 @@ crocus_resource_configure_aux(struct crocus_screen *screen,
const bool has_ccs =
((devinfo->ver >= 7 && !res->mod_info && !(INTEL_DEBUG & DEBUG_NO_RBC)) ||
(res->mod_info && res->mod_info->aux_usage != ISL_AUX_USAGE_NONE)) &&
isl_surf_get_ccs_surf(&screen->isl_dev, &res->surf, &res->aux.surf,
NULL, 0);
isl_surf_get_ccs_surf(&screen->isl_dev, &res->surf, NULL,
&res->aux.surf, 0);
/* Having more than one type of compression is impossible */
assert(has_ccs + has_mcs + has_hiz <= 1);