radv: Allow DCC images to be compressed with foreign queues.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 14 May 2021 12:08:12 +0000 (14:08 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 14 Jun 2021 11:20:59 +0000 (11:20 +0000)
Otherwise we would always decompress when transitioning to the
foreign queue.

Fixes: 8b9033ad0a0 ("radv: Support DCC modifiers fully.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>

src/amd/vulkan/radv_image.c

index 1847de3..f18f96c 100644 (file)
@@ -1974,6 +1974,9 @@ radv_layout_dcc_compressed(const struct radv_device *device, const struct radv_i
    if (!radv_dcc_enabled(image, level))
       return false;
 
+   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))
       return true;