Mesa (master): radv: add fast clears support for mipmapped color images with DCC

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 20 09:02:21 UTC 2019


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Jun 20 09:17:35 2019 +0200

radv: add fast clears support for mipmapped color images with DCC

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_meta_clear.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index dea0cae6d96..b8ca5c2c9b2 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1364,10 +1364,20 @@ radv_clear_dcc(struct radv_cmd_buffer *cmd_buffer,
 	       struct radv_image *image,
 	       const VkImageSubresourceRange *range, uint32_t value)
 {
+	uint32_t level_count = radv_get_levelCount(image, range);
+	uint32_t flush_bits = 0;
+
 	/* Mark the image as being compressed. */
 	radv_update_dcc_metadata(cmd_buffer, image, range, true);
 
-	return radv_dcc_clear_level(cmd_buffer, image, 0, value);
+	for (uint32_t l = 0; l < level_count; l++) {
+		uint32_t level = range->baseMipLevel + l;
+
+		flush_bits |= radv_dcc_clear_level(cmd_buffer, image,
+						   level, value);
+	}
+
+	return flush_bits;
 }
 
 uint32_t




More information about the mesa-commit mailing list