radv: disable tc-compat htile for layered images on gfx8
authorChia-I Wu <olvaffe@gmail.com>
Sat, 1 Jul 2023 00:36:57 +0000 (17:36 -0700)
committerMarge Bot <emma+marge@anholt.net>
Sat, 22 Jul 2023 02:32:31 +0000 (02:32 +0000)
sliceInterleaved may be true for layered images on gfx8.  Such a htile
cannot be cleared with radv_clear_htile.

Fixes 24 failures in
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.* on GFX8.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23959>

src/amd/vulkan/radv_image.c

index d57ba22..dcfcfae 100644 (file)
@@ -99,6 +99,12 @@ radv_use_tc_compat_htile_for_image(struct radv_device *device, const VkImageCrea
        */
       if (format != VK_FORMAT_D32_SFLOAT_S8_UINT && format != VK_FORMAT_D32_SFLOAT && format != VK_FORMAT_D16_UNORM)
          return false;
+
+      /* TC-compat HTILE for layered images can have interleaved slices (see sliceInterleaved flag
+       * in addrlib).  radv_clear_htile does not work.
+       */
+      if (pCreateInfo->arrayLayers > 1)
+         return false;
    }
 
    return true;