From 194e4776156f7d04baf335673654113339c5c9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Briano?= Date: Thu, 4 Mar 2021 14:55:35 -0800 Subject: [PATCH] anv: don't advertise mipmaps for linear 3D surfaces on BDW Prior to SKL, the mipmaps for 3D surfaces are laid out in a way that make it impossible to represent in the way that VkSubresourceLayout expects. Since we can't tell users how to make sense of them, don't report them as available. "Fixes" dEQP-VK.image.subresource_layout.3d.* Reviewed-by: Jason Ekstrand Reviewed-by: Nanley Chery Part-of: --- src/intel/vulkan/anv_formats.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index 9d09e6bf016..ebe71a5525d 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -978,7 +978,15 @@ anv_get_image_format_properties( maxExtent.width = 2048; maxExtent.height = 2048; maxExtent.depth = 2048; - maxMipLevels = 12; /* log2(maxWidth) + 1 */ + /* Prior to SKL, the mipmaps for 3D surfaces are laid out in a way + * that make it impossible to represent in the way that + * VkSubresourceLayout expects. Since we can't tell users how to make + * sense of them, don't report them as available. + */ + if (devinfo->gen < 9 && info->tiling == VK_IMAGE_TILING_LINEAR) + maxMipLevels = 1; + else + maxMipLevels = 12; /* log2(maxWidth) + 1 */ maxArraySize = 1; sampleCounts = VK_SAMPLE_COUNT_1_BIT; break;