Mesa (master): radv: fixup DCC after color resolves using the compute path
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jan 12 16:12:52 UTC 2021
Module: Mesa
Branch: master
Commit: 3e781056b9ca22e478cfd25a044570d20925cac0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e781056b9ca22e478cfd25a044570d20925cac0
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Tue Jan 5 09:26:36 2021 +0100
radv: fixup DCC after color resolves using the compute path
If the dest image has DCC it should be re-initialized to the
uncompressed state.
Note that the driver always selects the graphics path if the dest
image has DCC, so this has no effect for now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8326>
---
src/amd/vulkan/radv_meta_resolve_cs.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/amd/vulkan/radv_meta_resolve_cs.c b/src/amd/vulkan/radv_meta_resolve_cs.c
index fa2d48a12af..d4278e94e24 100644
--- a/src/amd/vulkan/radv_meta_resolve_cs.c
+++ b/src/amd/vulkan/radv_meta_resolve_cs.c
@@ -860,6 +860,23 @@ void radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer,
}
radv_meta_restore(&saved_state, cmd_buffer);
+
+ if (radv_layout_dcc_compressed(cmd_buffer->device, dest_image,
+ dest_image_layout, false, queue_mask)) {
+
+ cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
+ RADV_CMD_FLAG_INV_VCACHE;
+
+ VkImageSubresourceRange range = {
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ .baseMipLevel = region->dstSubresource.mipLevel,
+ .levelCount = 1,
+ .baseArrayLayer = dest_base_layer,
+ .layerCount = region->dstSubresource.layerCount,
+ };
+
+ radv_initialize_dcc(cmd_buffer, dest_image, &range, 0xffffffff);
+ }
}
/**
More information about the mesa-commit
mailing list