[Mesa-dev] [PATCH 5/6] radv: do not fast clears if one level can't be fast cleared
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Jun 18 14:15:31 UTC 2019
And fallback to slow color clears.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/amd/vulkan/radv_meta_clear.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 7f8f69e10f6..ed7f19b1dce 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1515,6 +1515,20 @@ radv_can_fast_clear_color(struct radv_cmd_buffer *cmd_buffer,
if (!can_avoid_fast_clear_elim)
return false;
}
+
+ if (iview->image->info.levels > 1) {
+ for (uint32_t l = 0; l < iview->level_count; l++) {
+ uint32_t level = iview->base_mip + l;
+ struct legacy_surf_level *surf_level =
+ &iview->image->planes[0].surface.u.legacy.level[level];
+
+ /* Do not fast clears if one level can't be
+ * fast cleared.
+ */
+ if (!surf_level->dcc_fast_clear_size)
+ return false;
+ }
+ }
}
return true;
--
2.22.0
More information about the mesa-dev
mailing list