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;