From ec1891bae899a673bbd5515878c23465f3bbca63 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 16 Nov 2021 11:08:15 +0100 Subject: radv: disable HTILE for D32S8 format and mipmaps on GFX10 Stencil texturing with HTILE doesn't work with mipmapping on Navi10-14, it's a hw bug. RadeonSI and PAL have a workaround too. This fixes 35 piglit failures with Zink on Navi10. Cc: 21.3 mesa-stable Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: (cherry picked from commit 341278f069a54a173fa646b16e0b68eefd28e5ed) --- .pick_status.json | 2 +- src/amd/vulkan/radv_image.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index bb0138ffb85..5cf866f299c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2398,7 +2398,7 @@ "description": "radv: disable HTILE for D32S8 format and mipmaps on GFX10", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 5430f94794e..cd5a782d395 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -352,6 +352,11 @@ radv_use_htile_for_image(const struct radv_device *device, const struct radv_ima bool use_htile_for_mips = image->info.array_size == 1 && device->physical_device->rad_info.chip_class >= GFX10; + /* Stencil texturing with HTILE doesn't work with mipmapping on Navi10-14. */ + if (device->physical_device->rad_info.chip_class == GFX10 && + image->vk_format == VK_FORMAT_D32_SFLOAT_S8_UINT && image->info.levels > 1) + return false; + /* Do not enable HTILE for very small images because it seems less performant but make sure it's * allowed with VRS attachments because we need HTILE. */ -- cgit v1.2.3