Module: Mesa
Branch: staging/23.3
Commit: c73c7c0b0bb062f65aecdc28187579a335064799
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c73c7c0b0bb062f65aecdc28187579a335064799

Author: Samuel Pitoiset <[email protected]>
Date:   Wed Nov 15 11:52:12 2023 +0100

radv: disable TC-compatible HTILE on Tonga and Iceland

According to RadeonSI, TC-compat HTILE have issues on Tonga/Iceland
(first GFX8 chips) and a bunch of games seem to have issues.

Let's disable it instead of using a feature that is known broken.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7101
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3894
Signed-off-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26204>
(cherry picked from commit ab3460311509fbc3e1ff36647a21cffe7710962a)

---

 .pick_status.json           | 2 +-
 src/amd/vulkan/radv_image.c | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index dc97e394d12..372b810537e 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -274,7 +274,7 @@
         "description": "radv: disable TC-compatible HTILE on Tonga and 
Iceland",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null,
         "notes": null
diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 2b6c5ea16fd..10edc11129c 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -75,6 +75,13 @@ radv_use_tc_compat_htile_for_image(struct radv_device 
*device, const VkImageCrea
    if (device->physical_device->rad_info.gfx_level < GFX8)
       return false;
 
+   /* TC-compat HTILE looks broken on Tonga (and Iceland is the same design) 
and the documented bug
+    * workarounds don't help.
+    */
+   if (device->physical_device->rad_info.family == CHIP_TONGA ||
+       device->physical_device->rad_info.family == CHIP_ICELAND)
+      return false;
+
    if (pCreateInfo->tiling == VK_IMAGE_TILING_LINEAR)
       return false;
 

Reply via email to