From: Yiwei Zhang Date: Fri, 7 Jul 2023 07:14:07 +0000 (-0700) Subject: venus: cleanup vn_cmd_begin_render_pass usage X-Git-Tag: upstream/23.3.3~5213 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=311a0eeb21447ffef5350d2deea07f2d6179b3a1;p=platform%2Fupstream%2Fmesa.git 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 Part-of: --- diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c index 93942ae..85c8f75 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 {