From c0f6c28415dfe45c1ba3073d522c29e6f2a6b9d0 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 7 Aug 2025 12:30:56 +0300 Subject: [PATCH] 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 Part-of: (cherry picked from commit f8cbc558db642ebefcbf78d78c936cdfe0b11f4a) --- .pick_status.json | 2 +- src/vulkan/runtime/vk_render_pass.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index cfbc88615d0..5ea17ffa54a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4844,7 +4844,7 @@ "description": "vulkan/render_pass: fixup renderpasses barriers for 2D views of 3D images", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "595889018ad4fa3e2c593a13d640c9eee26336c7", "notes": null diff --git a/src/vulkan/runtime/vk_render_pass.c b/src/vulkan/runtime/vk_render_pass.c index bccb8822a80..1f30245363d 100644 --- a/src/vulkan/runtime/vk_render_pass.c +++ b/src/vulkan/runtime/vk_render_pass.c @@ -1633,8 +1633,14 @@ transition_attachment(struct vk_command_buffer *cmd_buffer, */ if (image_view->image->image_type == VK_IMAGE_TYPE_3D) { 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;