diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vulkan/anv_cmd_buffer.c | 24 | ||||
-rw-r--r-- | src/vulkan/anv_private.h | 11 | ||||
-rw-r--r-- | src/vulkan/gen7_cmd_buffer.c | 11 | ||||
-rw-r--r-- | src/vulkan/gen8_cmd_buffer.c | 11 |
4 files changed, 37 insertions, 20 deletions
diff --git a/src/vulkan/anv_cmd_buffer.c b/src/vulkan/anv_cmd_buffer.c index 065c2f64922..070b8490e32 100644 --- a/src/vulkan/anv_cmd_buffer.c +++ b/src/vulkan/anv_cmd_buffer.c @@ -386,7 +386,7 @@ VkResult anv_BeginCommandBuffer( struct anv_subpass *subpass = &cmd_buffer->state.pass->subpasses[pBeginInfo->pInheritanceInfo->subpass]; - anv_cmd_buffer_begin_subpass(cmd_buffer, subpass); + anv_cmd_buffer_set_subpass(cmd_buffer, subpass); } anv_cmd_buffer_emit_state_base_address(cmd_buffer); @@ -954,19 +954,31 @@ anv_cmd_buffer_merge_dynamic(struct anv_cmd_buffer *cmd_buffer, return state; } +/** + * @brief Setup the command buffer for recording commands inside the given + * subpass. + * + * This does not record all commands needed for starting the subpass. + * Starting the subpass may require additional commands. + * + * Note that vkCmdBeginRenderPass, vkCmdNextSubpass, and vkBeginCommandBuffer + * with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, all setup the + * command buffer for recording commands for some subpass. But only the first + * two, vkCmdBeginRenderPass and vkCmdNextSubpass, can start a subpass. + */ void -anv_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer, - struct anv_subpass *subpass) +anv_cmd_buffer_set_subpass(struct anv_cmd_buffer *cmd_buffer, + struct anv_subpass *subpass) { switch (cmd_buffer->device->info.gen) { case 7: - gen7_cmd_buffer_begin_subpass(cmd_buffer, subpass); + gen7_cmd_buffer_set_subpass(cmd_buffer, subpass); break; case 8: - gen8_cmd_buffer_begin_subpass(cmd_buffer, subpass); + gen8_cmd_buffer_set_subpass(cmd_buffer, subpass); break; case 9: - gen9_cmd_buffer_begin_subpass(cmd_buffer, subpass); + gen9_cmd_buffer_set_subpass(cmd_buffer, subpass); break; default: unreachable("unsupported gen\n"); diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h index a76e78aa8e4..e8ac70dc498 100644 --- a/src/vulkan/anv_private.h +++ b/src/vulkan/anv_private.h @@ -1243,15 +1243,14 @@ void anv_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer); void anv_cmd_state_setup_attachments(struct anv_cmd_buffer *cmd_buffer, const VkRenderPassBeginInfo *info); -void gen7_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer, - struct anv_subpass *subpass); -void gen8_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer, +void gen7_cmd_buffer_set_subpass(struct anv_cmd_buffer *cmd_buffer, struct anv_subpass *subpass); -void gen9_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer, +void gen8_cmd_buffer_set_subpass(struct anv_cmd_buffer *cmd_buffer, struct anv_subpass *subpass); - -void anv_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer, +void gen9_cmd_buffer_set_subpass(struct anv_cmd_buffer *cmd_buffer, + struct anv_subpass *subpass); +void anv_cmd_buffer_set_subpass(struct anv_cmd_buffer *cmd_buffer, struct anv_subpass *subpass); struct anv_state diff --git a/src/vulkan/gen7_cmd_buffer.c b/src/vulkan/gen7_cmd_buffer.c index bea0abea1cc..b83bfdadbae 100644 --- a/src/vulkan/gen7_cmd_buffer.c +++ b/src/vulkan/gen7_cmd_buffer.c @@ -794,9 +794,12 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer) anv_batch_emit(&cmd_buffer->batch, GEN7_3DSTATE_CLEAR_PARAMS); } +/** + * @see anv_cmd_buffer_set_subpass() + */ GENX_FUNC(GEN7, GEN7) void -genX(cmd_buffer_begin_subpass)(struct anv_cmd_buffer *cmd_buffer, - struct anv_subpass *subpass) +genX(cmd_buffer_set_subpass)(struct anv_cmd_buffer *cmd_buffer, + struct anv_subpass *subpass) { cmd_buffer->state.subpass = subpass; cmd_buffer->state.descriptors_dirty |= VK_SHADER_STAGE_FRAGMENT_BIT; @@ -830,7 +833,7 @@ void genX(CmdBeginRenderPass)( .DrawingRectangleOriginY = 0, .DrawingRectangleOriginX = 0); - gen7_cmd_buffer_begin_subpass(cmd_buffer, pass->subpasses); + gen7_cmd_buffer_set_subpass(cmd_buffer, pass->subpasses); anv_cmd_buffer_clear_subpass(cmd_buffer); } @@ -842,7 +845,7 @@ void genX(CmdNextSubpass)( assert(cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_PRIMARY); - gen7_cmd_buffer_begin_subpass(cmd_buffer, cmd_buffer->state.subpass + 1); + gen7_cmd_buffer_set_subpass(cmd_buffer, cmd_buffer->state.subpass + 1); anv_cmd_buffer_clear_subpass(cmd_buffer); } diff --git a/src/vulkan/gen8_cmd_buffer.c b/src/vulkan/gen8_cmd_buffer.c index 10bc8f7bf54..e2bbd94ddf8 100644 --- a/src/vulkan/gen8_cmd_buffer.c +++ b/src/vulkan/gen8_cmd_buffer.c @@ -791,9 +791,12 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer) anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CLEAR_PARAMS)); } +/** + * @see anv_cmd_buffer_set_subpass() + */ void -genX(cmd_buffer_begin_subpass)(struct anv_cmd_buffer *cmd_buffer, - struct anv_subpass *subpass) +genX(cmd_buffer_set_subpass)(struct anv_cmd_buffer *cmd_buffer, + struct anv_subpass *subpass) { cmd_buffer->state.subpass = subpass; @@ -829,7 +832,7 @@ void genX(CmdBeginRenderPass)( .DrawingRectangleOriginY = 0, .DrawingRectangleOriginX = 0); - genX(cmd_buffer_begin_subpass)(cmd_buffer, pass->subpasses); + genX(cmd_buffer_set_subpass)(cmd_buffer, pass->subpasses); anv_cmd_buffer_clear_subpass(cmd_buffer); } @@ -841,7 +844,7 @@ void genX(CmdNextSubpass)( assert(cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_PRIMARY); - genX(cmd_buffer_begin_subpass)(cmd_buffer, cmd_buffer->state.subpass + 1); + genX(cmd_buffer_set_subpass)(cmd_buffer, cmd_buffer->state.subpass + 1); anv_cmd_buffer_clear_subpass(cmd_buffer); } |