From a13c8e9cc2a103cc6ee6d32e62b0d8ed67e01cb5 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Fri, 14 May 2021 14:08:12 +0200 Subject: [PATCH] radv: Allow DCC images to be compressed with foreign queues. Otherwise we would always decompress when transitioning to the foreign queue. Fixes: 8b9033ad0a0 ("radv: Support DCC modifiers fully.") Reviewed-by: Samuel Pitoiset Part-of: (cherry picked from commit 720ee494e53e29a65a3c19bb302d013403bd1d57) --- .pick_status.json | 2 +- src/amd/vulkan/radv_image.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 3fa8fd55de6..e5053710c49 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1570,7 +1570,7 @@ "description": "radv: Allow DCC images to be compressed with foreign queues.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "8b9033ad0a007ffe76f0f691c5540ce1b7c28499" }, diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 2de899bee2d..3db4612e9db 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1983,6 +1983,9 @@ bool radv_layout_dcc_compressed(const struct radv_device *device, const struct radv_image *image, VkImageLayout layout, bool in_render_loop, unsigned queue_mask) { + if (image->tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT && queue_mask & (1u << RADV_QUEUE_FOREIGN)) + return true; + /* If the image is read-only, we can always just keep it compressed */ if (!(image->usage & RADV_IMAGE_USAGE_WRITE_BITS) && radv_image_has_dcc(image)) return true;