[v2,4/6] radv: add fast clears support for mipmapped color images with DCC

Submitted by Samuel Pitoiset on June 20, 2019, 7:17 a.m.

Details

Message ID 20190620071737.7736-4-samuel.pitoiset@gmail.com
State New
Headers show
Series "Series without cover letter" ( rev: 1 ) in Mesa

Not browsing as part of any series.

Commit Message

Samuel Pitoiset June 20, 2019, 7:17 a.m.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
---
 src/amd/vulkan/radv_meta_clear.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

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