From fbacd8a99c8b4e2f48af423a4552484f7271690d Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Wed, 11 Nov 2020 08:04:53 -0800 Subject: [PATCH] iris: Call iris_sample_with_depth_aux earlier Instead of calling iris_sample_with_depth_aux right before a sample operation, call it at resource creation time. Unifies the code which ensures that it's okay to sample with HiZ. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_resolve.c | 13 +------------ src/gallium/drivers/iris/iris_resource.c | 12 ++---------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index 12251e6901c..4d9a16bb50a 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -827,21 +827,10 @@ iris_resource_texture_aux_usage(struct iris_context *ice, switch (res->aux.usage) { case ISL_AUX_USAGE_HIZ: - assert(res->surf.format == view_format); - if (iris_sample_with_depth_aux(devinfo, res)) - return ISL_AUX_USAGE_HIZ; - break; - case ISL_AUX_USAGE_HIZ_CCS: - assert(res->surf.format == view_format); - assert(!iris_sample_with_depth_aux(devinfo, res)); - return ISL_AUX_USAGE_NONE; - case ISL_AUX_USAGE_HIZ_CCS_WT: assert(res->surf.format == view_format); - if (iris_sample_with_depth_aux(devinfo, res)) - return ISL_AUX_USAGE_HIZ_CCS_WT; - break; + return util_last_bit(res->aux.sampler_usages) - 1; 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 3f24201a21c..177dc8a97b3 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -685,16 +685,8 @@ iris_resource_configure_aux(struct iris_screen *screen, res->aux.usage = util_last_bit(res->aux.possible_usages) - 1; - res->aux.sampler_usages = res->aux.possible_usages; - - /* We don't always support sampling with hiz. But when we do, it must be - * single sampled. - */ - if (!devinfo->has_sample_with_hiz || res->surf.samples > 1) - res->aux.sampler_usages &= ~(1 << ISL_AUX_USAGE_HIZ); - - /* ISL_AUX_USAGE_HIZ_CCS doesn't support sampling at all */ - res->aux.sampler_usages &= ~(1 << ISL_AUX_USAGE_HIZ_CCS); + if (!has_hiz || iris_sample_with_depth_aux(devinfo, res)) + res->aux.sampler_usages = res->aux.possible_usages; enum isl_aux_state initial_state; assert(!res->aux.bo);