From d905018a2c81a10a8f1b5931f7d6acfebc9b7b34 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Mon, 17 Jan 2022 11:16:03 -0500 Subject: [PATCH] iris: Use iris_sample_with_depth_aux more often We're going to remove res->aux.sampler_usages. This will simplify the commit in which we do so. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_resolve.c | 3 ++- src/gallium/drivers/iris/iris_resource.c | 2 +- src/gallium/drivers/iris/iris_state.c | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index 50fc9a94dfe..1da1fff3b12 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -864,7 +864,8 @@ iris_resource_texture_aux_usage(struct iris_context *ice, case ISL_AUX_USAGE_HIZ_CCS: case ISL_AUX_USAGE_HIZ_CCS_WT: assert(res->surf.format == view_format); - return util_last_bit(res->aux.sampler_usages) - 1; + return iris_sample_with_depth_aux(devinfo, res) ? + res->aux.usage : ISL_AUX_USAGE_NONE; case ISL_AUX_USAGE_MCS: case ISL_AUX_USAGE_MCS_CCS: diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index 04d64b41670..ba8fd078254 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -554,7 +554,7 @@ iris_get_aux_clear_color_state_size(struct iris_screen *screen, * sampler via render surface state objects. */ if (isl_surf_usage_is_depth(res->surf.usage) && - res->aux.sampler_usages == 1 << ISL_AUX_USAGE_NONE) + !iris_sample_with_depth_aux(&screen->devinfo, res)) return 0; return screen->isl_dev.ss.clear_color_state_size; diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 3738d9155a7..a607af4e810 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -2529,6 +2529,9 @@ iris_create_sampler_view(struct pipe_context *ctx, isv->res->aux.usage == ISL_AUX_USAGE_GFX12_CCS_E) && !isl_format_supports_ccs_e(devinfo, isv->view.format)) { aux_usages = 1 << ISL_AUX_USAGE_NONE; + } else if (isl_aux_usage_has_hiz(isv->res->aux.usage) && + !iris_sample_with_depth_aux(devinfo, isv->res)) { + aux_usages = 1 << ISL_AUX_USAGE_NONE; } else { aux_usages = isv->res->aux.sampler_usages; }