From f46f5eac7ce95e5e59969d60df3895db76c362a0 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Thu, 22 Jul 2021 13:49:48 +0200 Subject: [PATCH] v3dv: don't merge subpasses with different view masks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/vulkan/v3dv_cmd_buffer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index 68bc7161f4f..36cf6eb54bd 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -398,6 +398,13 @@ cmd_buffer_can_merge_subpass(struct v3dv_cmd_buffer *cmd_buffer, struct v3dv_subpass *prev_subpass = &state->pass->subpasses[state->subpass_idx]; struct v3dv_subpass *subpass = &state->pass->subpasses[subpass_idx]; + /* Don't merge if the subpasses have different view masks, since in that + * case the framebuffer setup is different and we need to emit different + * RCLs. + */ + if (subpass->view_mask != prev_subpass->view_mask) + return false; + /* Because the list of subpass attachments can include VK_ATTACHMENT_UNUSED, * we need to check that for each subpass all its used attachments are * used by the other subpass.