diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c index e41ac7b122d..0e783101270 100644 --- a/src/amd/vulkan/radv_meta_clear.c +++ b/src/amd/vulkan/radv_meta_clear.c @@ -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; }