Module: Mesa Branch: main Commit: 311a0eeb21447ffef5350d2deea07f2d6179b3a1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=311a0eeb21447ffef5350d2deea07f2d6179b3a1
Author: Yiwei Zhang <[email protected]> Date: Fri Jul 7 00:14:07 2023 -0700 venus: cleanup vn_cmd_begin_render_pass usage For secondary command buffers, vn_cmd_begin_render_pass was only used to track inherited render pass previously. So we clean it up. Signed-off-by: Yiwei Zhang <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24103> --- src/virtio/vulkan/vn_command_buffer.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c index 93942aef2e6..85c8f7502c0 100644 --- a/src/virtio/vulkan/vn_command_buffer.c +++ b/src/virtio/vulkan/vn_command_buffer.c @@ -583,17 +583,17 @@ vn_cmd_begin_render_pass(struct vn_command_buffer *cmd, const struct vn_framebuffer *fb, const VkRenderPassBeginInfo *begin_info) { + assert(begin_info); + assert(cmd->level == VK_COMMAND_BUFFER_LEVEL_PRIMARY); + cmd->builder.render_pass = pass; - if (begin_info) { - cmd->in_render_pass = true; - cmd->render_pass = pass; - cmd->subpass_index = 0; - cmd->view_mask = cmd->render_pass->subpasses[0].view_mask; - } + cmd->in_render_pass = true; + cmd->render_pass = pass; + cmd->subpass_index = 0; + cmd->view_mask = cmd->render_pass->subpasses[0].view_mask; - if (!pass->present_count || - cmd->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY) + if (!pass->present_count) return; /* find fb attachments */ @@ -1033,15 +1033,17 @@ vn_BeginCommandBuffer(VkCommandBuffer commandBuffer, if (inheritance_info) { cmd->in_render_pass = local_begin_info.in_render_pass; if (local_begin_info.has_inherited_pass) { - vn_cmd_begin_render_pass( - cmd, vn_render_pass_from_handle(inheritance_info->renderPass), - vn_framebuffer_from_handle(inheritance_info->framebuffer), NULL); + const struct vn_render_pass *pass = + vn_render_pass_from_handle(inheritance_info->renderPass); + + /* Track the inherited render pass in the secondary cmd to fix wsi + * image ownership and layout transitions. + */ + cmd->builder.render_pass = pass; /* Store the viewMask from the inherited render pass subpass for * query feedback. */ - const struct vn_render_pass *pass = - vn_render_pass_from_handle(inheritance_info->renderPass); cmd->view_mask = pass->subpasses[inheritance_info->subpass].view_mask; } else {
