anv: uncompressed views of compressed 3d images are now valid
There was a VUID-VkImageViewCreateInfo-image-04739 in the Vulkan 1.3
spec that said:
If image was created with the
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a
non-compressed format, viewType must not be VK_IMAGE_VIEW_TYPE_3D
That VUID has since been removed, and when a view of a 3D image is
created, with put the depth into the array_len, so it won't be always 1.
Reviewed-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20803>
(cherry picked from commit 58ababdee6cd6b1e08604033602e4a5f9d5ab7a3)
diff --git a/.pick_status.json b/.pick_status.json
index 32a0931..f32e8ee 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -7501,7 +7501,7 @@
"description": "anv: uncompressed views of compressed 3d images are now valid",
"nominated": false,
"nomination_type": null,
- "resolution": 4,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 2f058c3..8bc06ae 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -2571,7 +2571,7 @@
*/
assert(surface->isl.samples == 1);
assert(view.levels == 1);
- assert(view.array_len == 1);
+ assert(surface->isl.dim == ISL_SURF_DIM_3D || view.array_len == 1);
ASSERTED bool ok =
isl_surf_get_uncompressed_surf(&device->isl_dev, isl_surf, &view,