VkFrameBoundaryEXT - Add frame boundary information to queue submissions
Description
The application can associate frame boundary information to a queue
submission call by adding a FrameBoundaryEXT structure to the pNext
chain of
queue submission,
PresentInfoKHR, or
BindSparseInfo.
The frame identifier is used to associate one or more queue submissions to a frame. It is meant to be unique within a frame lifetime, i.e. it is possible (though not recommended) to reuse frame identifiers, as long as any two frames that may have overlapping queue submissions (as in the example above) use different frame identifiers.
Since the concept of frame is application-dependent, there is no way to validate the use of frame identifier. It is good practice to use a monotonically increasing counter as the frame identifier and not reuse identifiers between frames.
The pImages and pBuffers arrays contain a list of images and buffers
which store the “end result” of the frame. As the concept of frame is
application-dependent, not all frames may produce their results in
images or buffers, yet this is a sufficiently common case to be handled
by FrameBoundaryEXT. Note that no extra information, such as image
layout is being provided, since the images are meant to be used by tools
which would already be tracking this required information. Having the
possibility of passing a list of end-result images makes
FrameBoundaryEXT as expressive as
queuePresentKHR, which is often the
default frame boundary delimiter.
The application can also associate arbitrary extra information via tag
data using tagName, tagSize and pTag. This extra information is
typically tool-specific.
Valid Usage (Implicit)
sTypemust be STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
flagsmust be a valid combination of FrameBoundaryFlagBitsEXT valuesIf
imageCountis not0, andpImagesis notNULL,pImagesmust be a valid pointer to an array ofimageCountvalid Image handlesIf
bufferCountis not0, andpBuffersis notNULL,pBuffersmust be a valid pointer to an array ofbufferCountvalid Buffer handlesIf
tagSizeis not0, andpTagis notNULL,pTagmust be a valid pointer to an array oftagSizebytesBoth of the elements of
pBuffers, and the elements ofpImagesthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device
Structure Chaining
See Also
VK_EXT_frame_boundary, Buffer, FrameBoundaryFlagsEXT, Image, StructureType
Constructors
FrameBoundaryEXTflags :: FrameBoundaryFlagsEXTflagsis a bitmask of FrameBoundaryFlagBitsEXT that can flag the last submission of a frame identifier.frameID :: Word64frameIDis the frame identifier.imageCount :: Word32imageCountis the number of images that store frame results.images :: Vector ImagepImagesis a pointer to an array of VkImage objects with imageCount entries.bufferCount :: Word32bufferCountis the number of buffers the store the frame results.buffers :: Vector BufferpBuffersis a pointer to an array of VkBuffer objects with bufferCount entries.tagName :: Word64tagNameis a numerical identifier for tag data.tagSize :: Word64tagSizeis the number of bytes of tag data.tag :: Ptr ()pTagis a pointer to an array oftagSizebytes containing tag data.
Instances4Show, FromCStruct, ToCStruct, Zero
Show FrameBoundaryEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_frame_boundaryFromCStruct FrameBoundaryEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_frame_boundaryToCStruct FrameBoundaryEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_frame_boundaryZero FrameBoundaryEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_frame_boundary