radv: Enable DCC in the GENERAL layout on GFX10+.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Thu, 17 Sep 2020 18:18:42 +0000 (20:18 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 21 Dec 2020 18:32:24 +0000 (18:32 +0000)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7004>

src/amd/vulkan/radv_image.c

index 40d1869..fac2bb5 100644 (file)
@@ -1800,11 +1800,14 @@ bool radv_layout_dcc_compressed(const struct radv_device *device,
                                unsigned queue_mask)
 {
        /* Don't compress compute transfer dst, as image stores are not supported. */
-       if (layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL &&
+       if ((layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL ||
+            layout == VK_IMAGE_LAYOUT_GENERAL) &&
            (queue_mask & (1u << RADV_QUEUE_COMPUTE)))
                return false;
 
-       return radv_image_has_dcc(image) && layout != VK_IMAGE_LAYOUT_GENERAL;
+       return radv_image_has_dcc(image) &&
+              (device->physical_device->rad_info.chip_class >= GFX10 ||
+               layout != VK_IMAGE_LAYOUT_GENERAL);
 }