vulkan/render_pass: fixup renderpasses barriers for 2D views of 3D images

With maintenance9 enabled

Spec clarification : https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/7629

Fixes: 595889018a ("anv: implement VK_KHR_maintenance9")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13669
Reviewed-by: Alyssa Anne Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36624>
This commit is contained in:
Lionel Landwerlin 2025-08-07 12:30:56 +03:00 committed by Marge Bot
parent d775f3b608
commit f8cbc558db

View file

@ -1706,8 +1706,14 @@ transition_attachment(struct vk_command_buffer *cmd_buffer,
if (image_view->image->image_type == VK_IMAGE_TYPE_3D) {
/* 3D is stupidly special. See transition_view_mask() */
assert(view == 0);
range.baseArrayLayer = 0;
range.layerCount = image_view->extent.depth;
if (image_view->view_type == VK_IMAGE_VIEW_TYPE_2D &&
cmd_buffer->base.device->enabled_features.maintenance9) {
range.baseArrayLayer = image_view->base_array_layer;
range.layerCount = image_view->layer_count;
} else {
range.baseArrayLayer = 0;
range.layerCount = image_view->extent.depth;
}
} else if (pass->is_multiview) {
range.baseArrayLayer = image_view->base_array_layer + view;
range.layerCount = 1;