C Specification
Alternatively to begin a render pass, call:
// Provided by VK_VERSION_1_2
void vkCmdBeginRenderPass2(
    VkCommandBuffer                             commandBuffer,
    const VkRenderPassBeginInfo*                pRenderPassBegin,
    const VkSubpassBeginInfo*                   pSubpassBeginInfo);or the equivalent command
// Provided by VK_KHR_create_renderpass2
void vkCmdBeginRenderPass2KHR(
    VkCommandBuffer                             commandBuffer,
    const VkRenderPassBeginInfo*                pRenderPassBegin,
    const VkSubpassBeginInfo*                   pSubpassBeginInfo);Parameters
- 
commandBufferis the command buffer in which to record the command.
- 
pRenderPassBeginis a pointer to a VkRenderPassBeginInfo structure specifying the render pass to begin an instance of, and the framebuffer the instance uses.
- 
pSubpassBeginInfois a pointer to a VkSubpassBeginInfo structure containing information about the subpass which is about to begin rendering.
Description
After beginning a render pass instance, the command buffer is ready to record the commands for the first subpass of that render pass.
- 
VUID-vkCmdBeginRenderPass2-framebuffer-02779 
 Both theframebufferandrenderPassmembers ofpRenderPassBeginmust have been created on the same VkDevice thatcommandBufferwas allocated on
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03094 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03096 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, orVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-02844 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, orVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, orVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845 
 If any of thestencilInitialLayoutorstencilFinalLayoutmember of theVkAttachmentDescriptionStencilLayoutstructures or thestencilLayoutmember of theVkAttachmentReferenceStencilLayoutstructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, orVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03097 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_SAMPLED_BITorVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03098 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_TRANSFER_SRC_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03099 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingVK_IMAGE_USAGE_TRANSFER_DST_BIT
- 
VUID-vkCmdBeginRenderPass2-initialLayout-03100 
 If theinitialLayoutmember of any of theVkAttachmentDescriptionstructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginis notVK_IMAGE_LAYOUT_UNDEFINED, then each suchinitialLayoutmust be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in theframebuffermember ofpRenderPassBegin
- 
VUID-vkCmdBeginRenderPass2-srcStageMask-06453 
 ThesrcStageMaskmembers of any element of thepDependenciesmember of VkRenderPassCreateInfo used to createrenderPassmust be supported by the capabilities of the queue family identified by thequeueFamilyIndexmember of the VkCommandPoolCreateInfo used to create the command pool whichcommandBufferwas allocated from
- 
VUID-vkCmdBeginRenderPass2-dstStageMask-06454 
 ThedstStageMaskmembers of any element of thepDependenciesmember of VkRenderPassCreateInfo used to createrenderPassmust be supported by the capabilities of the queue family identified by thequeueFamilyIndexmember of the VkCommandPoolCreateInfo used to create the command pool whichcommandBufferwas allocated from
- 
VUID-vkCmdBeginRenderPass2-framebuffer-02533 
 For any attachment inframebufferthat is used byrenderPassand is bound to memory locations that are also bound to another attachment used byrenderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had theVK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BITset
- 
VUID-vkCmdBeginRenderPass2-framebuffer-09046 
 If any attachments specified inframebufferare used byrenderPassand are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass
- 
VUID-vkCmdBeginRenderPass2-initialLayout-07002 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue including either theVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITorVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITand either theVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITorVK_IMAGE_USAGE_SAMPLED_BITusage bits
- 
VUID-vkCmdBeginRenderPass2-initialLayout-07003 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue theVK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTusage bit
- 
VUID-vkCmdBeginRenderPass2-initialLayout-09538 
 If any of theinitialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisVK_IMAGE_LAYOUT_RENDERING_LOCAL_READthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue including eitherVK_IMAGE_USAGE_STORAGE_BIT, or bothVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITand either ofVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITorVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
- 
VUID-vkCmdBeginRenderPass2-commandBuffer-parameter 
 commandBuffermust be a valid VkCommandBuffer handle
- 
VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter 
 pRenderPassBeginmust be a valid pointer to a valid VkRenderPassBeginInfo structure
- 
VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter 
 pSubpassBeginInfomust be a valid pointer to a valid VkSubpassBeginInfo structure
- 
VUID-vkCmdBeginRenderPass2-commandBuffer-recording 
 commandBuffermust be in the recording state
- 
VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool 
 TheVkCommandPoolthatcommandBufferwas allocated from must support graphics operations
- 
VUID-vkCmdBeginRenderPass2-renderpass 
 This command must only be called outside of a render pass instance
- 
VUID-vkCmdBeginRenderPass2-videocoding 
 This command must only be called outside of a video coding scope
- 
VUID-vkCmdBeginRenderPass2-bufferlevel 
 commandBuffermust be a primaryVkCommandBuffer
- 
Host access to commandBuffermust be externally synchronized
- 
Host access to the VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type | 
|---|---|---|---|---|
| Primary | Outside | Outside | Graphics | Action | 
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.