radv: fix DCC enablement since partial MSAA implementation
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 25 Apr 2018 08:56:15 +0000 (10:56 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 26 Apr 2018 13:34:11 +0000 (15:34 +0200)
dcc_msaa_allowed is always false on GFX9+ and only true on VI
if RADV_PERFTEST=dccmsaa is set. This means DCC was disabled
in some situations where it should not.

This is likely going to fix a performance regression.

Fixes: 2f63b3dd09 ("radv: enable DCC for MSAA 2x textures on VI under an option")
Cc: 18.1 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_image.c

index 348f4c7b34c0ca2f9a76752be95b7b465bffea85..793f861f4f6c46e25501e8413d0e305d1e7de750 100644 (file)
@@ -133,12 +133,12 @@ radv_use_dcc_for_image(struct radv_device *device,
        if (create_info->scanout)
                return false;
 
-       /* FIXME: DCC for MSAA with 4x and 8x samples doesn't work yet. */
-       if (pCreateInfo->samples > 2)
-               return false;
-
-       /* TODO: Enable DCC for MSAA textures. */
-       if (!device->physical_device->dcc_msaa_allowed)
+       /* FIXME: DCC for MSAA with 4x and 8x samples doesn't work yet, while
+        * 2x can be enabled with an option.
+        */
+       if (pCreateInfo->samples > 2 ||
+           (pCreateInfo->samples == 2 &&
+            !device->physical_device->dcc_msaa_allowed))
                return false;
 
        /* Determine if the formats are DCC compatible. */