radv: only keep concurrent MSAA images compressed if TC-compat CMASK
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 27 Apr 2021 12:50:35 +0000 (14:50 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 3 May 2021 08:38:31 +0000 (08:38 +0000)
Otherwise, we need a FMASK_DECOMPRESS which is only supported
on the gfx queue.

Fixes rendering with Forza Horizon 4 on Polaris10.

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/10482>

src/amd/vulkan/radv_image.c

index 4496615..7f9379e 100644 (file)
@@ -2001,7 +2001,9 @@ radv_layout_fmask_compressed(const struct radv_device *device, const struct radv
        (queue_mask & (1u << RADV_QUEUE_COMPUTE)))
       return false;
 
-   return layout != VK_IMAGE_LAYOUT_GENERAL;
+   /* Only compress concurrent images if TC-compat CMASK is enabled (no FMASK decompression). */
+   return layout != VK_IMAGE_LAYOUT_GENERAL &&
+          (queue_mask == (1u << RADV_QUEUE_GENERAL) || radv_image_is_tc_compat_cmask(image));
 }
 
 unsigned