Mesa (main): iris: Use iris_sample_with_depth_aux more often

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 10 05:10:56 UTC 2022


Module: Mesa
Branch: main
Commit: d905018a2c81a10a8f1b5931f7d6acfebc9b7b34
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d905018a2c81a10a8f1b5931f7d6acfebc9b7b34

Author: Nanley Chery <nanley.g.chery at intel.com>
Date:   Mon Jan 17 11:16:03 2022 -0500

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 <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14806>

---

 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;
    }



More information about the mesa-commit mailing list