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

Author: Nanley Chery <[email protected]>
Date:   Tue Dec 15 17:08:17 2020 -0800

iris: Don't avoid aux state getter/setter with HiZ

Before this commit, various functions avoided calling
iris_resource_get_aux_state and iris_resource_set_aux_state for depth
buffers which lacked full HiZ support at certain levels. This was
because:

 1. Some callers of prepare/finish neglected to use ISL_AUX_USAGE_NONE
    for the levels which lacked full HiZ support.
 2. The assertions within the getter and setter were too strict.

Now that both of these issues have been resolved, there's no obvious
reason to try to avoid these function calls. Delete the code for
avoiding them.

Reviewed-by: Kenneth Graunke <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8853>

---

 src/gallium/drivers/iris/iris_clear.c   |  3 ---
 src/gallium/drivers/iris/iris_resolve.c | 19 ++++---------------
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_clear.c 
b/src/gallium/drivers/iris/iris_clear.c
index 0fc468aaa39..a821643f682 100644
--- a/src/gallium/drivers/iris/iris_clear.c
+++ b/src/gallium/drivers/iris/iris_clear.c
@@ -464,9 +464,6 @@ fast_clear_depth(struct iris_context *ice,
     */
    if (res->aux.clear_color.f32[0] != depth) {
       for (unsigned res_level = 0; res_level < res->surf.levels; res_level++) {
-         if (!(res->aux.has_hiz & (1 << res_level)))
-            continue;
-
          const unsigned level_layers =
             iris_get_num_logical_layers(res, res_level);
          for (unsigned layer = 0; layer < level_layers; layer++) {
diff --git a/src/gallium/drivers/iris/iris_resolve.c 
b/src/gallium/drivers/iris/iris_resolve.c
index 754bbe57678..7a20f60fed1 100644
--- a/src/gallium/drivers/iris/iris_resolve.c
+++ b/src/gallium/drivers/iris/iris_resolve.c
@@ -583,14 +583,6 @@ iris_hiz_exec(struct iris_context *ice,
    iris_batch_sync_region_end(batch);
 }
 
-static bool
-level_has_aux(const struct iris_resource *res, uint32_t level)
-{
-   return isl_aux_usage_has_hiz(res->aux.usage) ?
-          iris_resource_level_has_hiz(res, level) :
-          res->aux.usage != ISL_AUX_USAGE_NONE;
-}
-
 /**
  * Does the resource's slice have hiz enabled?
  */
@@ -656,9 +648,6 @@ iris_has_invalid_primary(const struct iris_resource *res,
 
    for (uint32_t l = 0; l < num_levels; l++) {
       const uint32_t level = start_level + l;
-      if (!level_has_aux(res, level))
-         continue;
-
       const uint32_t level_layers =
          miptree_layer_range_length(res, level, start_layer, num_layers);
       for (unsigned a = 0; a < level_layers; a++) {
@@ -680,6 +669,9 @@ iris_resource_prepare_access(struct iris_context *ice,
                              enum isl_aux_usage aux_usage,
                              bool fast_clear_supported)
 {
+   if (!res->aux.bo)
+      return;
+
    /* We can't do resolves on the compute engine, so awkwardly, we have to
     * do them on the render batch...
     */
@@ -689,9 +681,6 @@ iris_resource_prepare_access(struct iris_context *ice,
       miptree_level_range_length(res, start_level, num_levels);
    for (uint32_t l = 0; l < clamped_levels; l++) {
       const uint32_t level = start_level + l;
-      if (!level_has_aux(res, level))
-         continue;
-
       const uint32_t level_layers =
          miptree_layer_range_length(res, level, start_layer, num_layers);
       for (uint32_t a = 0; a < level_layers; a++) {
@@ -734,7 +723,7 @@ iris_resource_finish_write(struct iris_context *ice,
                            uint32_t start_layer, uint32_t num_layers,
                            enum isl_aux_usage aux_usage)
 {
-   if (!level_has_aux(res, level))
+   if (!res->aux.bo)
       return;
 
    const uint32_t level_layers =

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

Reply via email to