Module: Mesa Branch: main Commit: 1764259ba8d0d2ba6d60f5c90b2b6da94ec523f8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1764259ba8d0d2ba6d60f5c90b2b6da94ec523f8
Author: Timur Kristóf <[email protected]> Date: Wed Oct 4 21:35:41 2023 +0200 radv: Disable DCC on exclusive images with transfer queue when SDMA doesn't support it. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25834> --- src/amd/vulkan/radv_image.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 613583353b0..07d6dea71af 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -2411,6 +2411,12 @@ radv_layout_dcc_compressed(const struct radv_device *device, const struct radv_i (queue_mask & (1u << RADV_QUEUE_COMPUTE)) && !radv_image_use_dcc_image_stores(device, image)) return false; + /* Don't compress exclusive images used on transfer queues when SDMA doesn't support DCC. + * Note that DCC is already disabled on concurrent images when not supported. + */ + if (queue_mask == BITFIELD_BIT(RADV_QUEUE_TRANSFER) && !device->physical_device->rad_info.sdma_supports_compression) + return false; + if (layout == VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) { /* Do not compress DCC with feedback loops because we can't read&write it without introducing * corruption.
