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

Author: Nanley Chery <[email protected]>
Date:   Wed Nov 11 08:04:53 2020 -0800

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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8853>

---

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

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to