v3dv: implement vkCmdNextSubpass

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
This commit is contained in:
Iago Toral Quiroga 2020-01-08 12:16:39 +01:00 committed by Marge Bot
parent 1c8226c682
commit 3da6e6a190
1 changed files with 18 additions and 0 deletions

View File

@ -50,6 +50,9 @@ v3dv_job_add_bo(struct v3dv_job *job, struct v3dv_bo *bo)
static void
subpass_start(struct v3dv_cmd_buffer *cmd_buffer);
static void
subpass_finish(struct v3dv_cmd_buffer *cmd_buffer);
VkResult
v3dv_CreateCommandPool(VkDevice _device,
const VkCommandPoolCreateInfo *pCreateInfo,
@ -417,7 +420,22 @@ v3dv_CmdBeginRenderPass(VkCommandBuffer commandBuffer,
/* Setup for first subpass */
state->subpass_idx = 0;
subpass_start(cmd_buffer);
}
void
v3dv_CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents)
{
V3DV_FROM_HANDLE(v3dv_cmd_buffer, cmd_buffer, commandBuffer);
struct v3dv_cmd_buffer_state *state = &cmd_buffer->state;
assert(state->subpass_idx < state->pass->subpass_count - 1);
/* Finish the previous subpass */
subpass_finish(cmd_buffer);
/* Start the next subpass */
state->subpass_idx++;
subpass_start(cmd_buffer);
}