radv: do not enable TC-compat CMASK if the image isn't readable by a shader
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 19 Jan 2021 13:00:15 +0000 (14:00 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 17 Mar 2021 08:55:15 +0000 (08:55 +0000)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9415>

src/amd/vulkan/radv_image.c

index 1b61bd4..466bb33 100644 (file)
@@ -273,6 +273,14 @@ radv_use_tc_compat_cmask_for_image(struct radv_device *device,
        if (image->usage & VK_IMAGE_USAGE_STORAGE_BIT)
                return false;
 
+       /* Do not enable TC-compatible if the image isn't readable by a shader
+        * because no texture fetches will happen.
+        */
+       if (!(image->usage & (VK_IMAGE_USAGE_SAMPLED_BIT |
+                             VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
+                             VK_IMAGE_USAGE_TRANSFER_SRC_BIT)))
+               return false;
+
        if (radv_image_has_dcc(image))
                return false;