C Specification
The VkRenderingAttachmentInfo
structure is defined as:
// Provided by VK_VERSION_1_3
typedef struct VkRenderingAttachmentInfo {
VkStructureType sType;
const void* pNext;
VkImageView imageView;
VkImageLayout imageLayout;
VkResolveModeFlagBits resolveMode;
VkImageView resolveImageView;
VkImageLayout resolveImageLayout;
VkAttachmentLoadOp loadOp;
VkAttachmentStoreOp storeOp;
VkClearValue clearValue;
} VkRenderingAttachmentInfo;
or the equivalent
// Provided by VK_KHR_dynamic_rendering
typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
Members
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
imageView
is the image view that will be used for rendering. -
imageLayout
is the layout thatimageView
will be in during rendering. -
resolveMode
is a VkResolveModeFlagBits value defining how data written toimageView
will be resolved intoresolveImageView
. -
resolveImageView
is an image view used to write resolved data at the end of rendering. -
resolveImageLayout
is the layout thatresolveImageView
will be in during rendering. -
loadOp
is a VkAttachmentLoadOp value defining the load operation for the attachment. -
storeOp
is a VkAttachmentStoreOp value defining the store operation for the attachment. -
clearValue
is a VkClearValue structure defining values used to clearimageView
whenloadOp
isVK_ATTACHMENT_LOAD_OP_CLEAR
.
Description
Values in imageView
are loaded and stored according to the values of
loadOp
and storeOp
, within the render area
for each device
specified in VkRenderingInfo.
If imageView
is VK_NULL_HANDLE,
and resolveMode
is not
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
,
other members of this structure are ignored; writes to this attachment will
be discarded, and no load,
store, or multisample resolve operations will be performed.
If resolveMode
is VK_RESOLVE_MODE_NONE
, then
resolveImageView
is ignored.
If resolveMode
is not VK_RESOLVE_MODE_NONE
, and
resolveImageView
is not VK_NULL_HANDLE, a
render pass multisample resolve operation
is defined for the attachment subresource.
If resolveMode
is
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
, and the
nullColorAttachmentWithExternalFormatResolve
limit is VK_TRUE
,
values are only undefined once load
operations have completed.
Note
The resolve mode and store operation are independent; it is valid to write both resolved and unresolved values, and equally valid to discard the unresolved values while writing the resolved ones. |
Store and resolve operations are only performed at the end of a render pass
instance that does not specify the VK_RENDERING_SUSPENDING_BIT_KHR
flag.
Load operations are only performed at the beginning of a render pass
instance that does not specify the VK_RENDERING_RESUMING_BIT_KHR
flag.
Image contents at the end of a suspended render pass instance remain defined for access by a resuming render pass instance.
If the nullColorAttachmentWithExternalFormatResolve
limit is VK_TRUE
,
and resolveMode
is
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
, values in the
color attachment will be loaded from the resolve attachment at the start of
rendering, and may also be reloaded any time after a resolve occurs or the
resolve attachment is written to; if this occurs it must happen-before any
writes to the color attachment are performed which happen-after the resolve
that triggers this.
If any color component in the external format is subsampled, values will be
read from the nearest sample in the image when they are loaded.
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.