radv: fix fast clearing depth images with mips on GFX10+
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 11 Aug 2021 12:06:09 +0000 (14:06 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 18 Aug 2021 06:27:32 +0000 (08:27 +0200)
Found by inspection.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12325>

src/amd/vulkan/radv_meta_clear.c

index e41ac7b..0e78310 100644 (file)
@@ -1000,6 +1000,14 @@ radv_can_fast_clear_depth(struct radv_cmd_buffer *cmd_buffer, const struct radv_
          !radv_is_fast_clear_stencil_allowed(clear_value))))
       return false;
 
+   if (iview->image->info.levels > 1) {
+      uint32_t last_level = iview->base_mip + iview->level_count - 1;
+      if (last_level >= iview->image->planes[0].surface.num_meta_levels) {
+         /* Do not fast clears if one level can't be fast cleared. */
+         return false;
+      }
+   }
+
    return true;
 }