radv: Allow DCC images to be compressed with foreign queues.

Otherwise we would always decompress when transitioning to the
foreign queue.

Fixes: 8b9033ad0a ("radv: Support DCC modifiers fully.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>
(cherry picked from commit 720ee494e5)
This commit is contained in:
Bas Nieuwenhuizen 2021-05-14 14:08:12 +02:00 committed by Eric Engestrom
parent a48779fffa
commit a13c8e9cc2
2 changed files with 4 additions and 1 deletions

View file

@ -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"
},

View file

@ -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;