Mesa (master): radv: enable TC-compat HTILE for D16S8 on GFX9+

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jan 19 18:27:04 UTC 2021


Module: Mesa
Branch: master
Commit: c28401ab437d0c575ab7a7cdc05f9ca786977ed7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c28401ab437d0c575ab7a7cdc05f9ca786977ed7

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Jan 18 16:04:54 2021 +0100

radv: enable TC-compat HTILE for D16S8 on GFX9+

I don't know why this wasn't enabled but I think it should be.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8562>

---

 src/amd/vulkan/radv_image.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 5d3d0266e91..128005317ed 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -93,21 +93,23 @@ radv_use_tc_compat_htile_for_image(struct radv_device *device,
 				    VK_IMAGE_USAGE_TRANSFER_SRC_BIT)))
 		return false;
 
-	/* FIXME: for some reason TC compat with 2/4/8 samples breaks some cts
-	 * tests - disable for now.
-	 */
-	if (device->physical_device->rad_info.chip_class < GFX9 &&
-	    pCreateInfo->samples >= 2 && format == VK_FORMAT_D32_SFLOAT_S8_UINT)
-		return false;
+	if (device->physical_device->rad_info.chip_class < GFX9) {
+		/* FIXME: for some reason TC compat with 2/4/8 samples breaks
+		 * some cts tests - disable for now.
+		 */
+		if (pCreateInfo->samples >= 2 && format == VK_FORMAT_D32_SFLOAT_S8_UINT)
+			return false;
 
-	/* GFX9 supports both 32-bit and 16-bit depth surfaces, while GFX8 only
-	 * supports 32-bit. Though, it's possible to enable TC-compat for
-	 * 16-bit depth surfaces if no Z planes are compressed.
-	 */
-	if (format != VK_FORMAT_D32_SFLOAT_S8_UINT &&
-	    format != VK_FORMAT_D32_SFLOAT &&
-	    format != VK_FORMAT_D16_UNORM)
-		return false;
+		/* GFX9+ supports compression for both 32-bit and 16-bit depth
+		 * surfaces, while GFX8 only supports 32-bit natively. Though,
+		 * the driver allows TC-compat HTILE for 16-bit depth surfaces
+		 * with no Z planes compression.
+		 */
+		if (format != VK_FORMAT_D32_SFLOAT_S8_UINT &&
+		    format != VK_FORMAT_D32_SFLOAT &&
+		    format != VK_FORMAT_D16_UNORM)
+			return false;
+	}
 
 	return true;
 }



More information about the mesa-commit mailing list