C Specification

The VkAttachmentDescription2KHR structure is defined as:

typedef struct VkAttachmentDescription2KHR {
VkStructureType                 sType;
const void*                     pNext;
VkAttachmentDescriptionFlags    flags;
VkFormat                        format;
VkSampleCountFlagBits           samples;
VkAttachmentStoreOp             storeOp;
VkAttachmentStoreOp             stencilStoreOp;
VkImageLayout                   initialLayout;
VkImageLayout                   finalLayout;
} VkAttachmentDescription2KHR;

Members

• sType is the type of this structure.

• pNext is NULL or a pointer to an extension-specific structure.

• flags is a bitmask of VkAttachmentDescriptionFlagBits specifying additional properties of the attachment.

• format is a VkFormat value specifying the format of the image that will be used for the attachment.

• samples is the number of samples of the image as defined in VkSampleCountFlagBits.

• loadOp is a VkAttachmentLoadOp value specifying how the contents of color and depth components of the attachment are treated at the beginning of the subpass where it is first used.

• storeOp is a VkAttachmentStoreOp value specifying how the contents of color and depth components of the attachment are treated at the end of the subpass where it is last used.

• stencilLoadOp is a VkAttachmentLoadOp value specifying how the contents of stencil components of the attachment are treated at the beginning of the subpass where it is first used.

• stencilStoreOp is a VkAttachmentStoreOp value specifying how the contents of stencil components of the attachment are treated at the end of the last subpass where it is used.

• initialLayout is the layout the attachment image subresource will be in when a render pass instance begins.

• finalLayout is the layout the attachment image subresource will be transitioned to when a render pass instance ends.

Description

Parameters defined by this structure with the same name as those in VkAttachmentDescription have the identical effect to those parameters.

If the separateDepthStencilLayouts feature is enabled, and format is a depth/stencil format, initialLayout and finalLayout can be set to a layout that only specifies the layout of the depth aspect.

If format is a depth/stencil format, and initialLayout only specifies the initial layout of the depth aspect of the attachment, the initial layout of the stencil aspect is specified by the stencilInitialLayout member of an instance of VkAttachmentDescriptionStencilLayoutKHR in the pNext chain. Otherwise, initialLayout describes the initial layout for all relevant image aspects.

If format is a depth/stencil format, and finalLayout only specifies the final layout of the depth aspect of the attachment, the final layout of the stencil aspect is specified by the stencilFinalLayout member of an instance of VkAttachmentDescriptionStencilLayoutKHR in the pNext chain. Otherwise, finalLayout describes the final layout for all relevant image aspects.

Valid Usage
• finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED

• If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If format is a depth/stencil format which includes both depth and stencil aspects, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, the pNext chain must include a valid instance of VkAttachmentDescriptionStencilLayoutKHR

• If format is a depth/stencil format which includes both depth and stencil aspects, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, the pNext chain must include a valid instance of VkAttachmentDescriptionStencilLayoutKHR

• If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR

• If format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR

• If format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR

Valid Usage (Implicit)