summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2021-11-16 11:08:15 +0100
committerEric Engestrom <eric@engestrom.ch>2021-12-01 18:55:46 +0000
commitec1891bae899a673bbd5515878c23465f3bbca63 (patch)
tree06347e9de57b841e5b5a7033dab168fc87b076a6
parent5e31954a2e529a867a584738b02411f0e56985cb (diff)
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 <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13814> (cherry picked from commit 341278f069a54a173fa646b16e0b68eefd28e5ed)
-rw-r--r--.pick_status.json2
-rw-r--r--src/amd/vulkan/radv_image.c5
2 files changed, 6 insertions, 1 deletions
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.
*/