C Specification
The VkPresentIdKHR structure is defined as:
// Provided by VK_KHR_present_id
typedef struct VkPresentIdKHR {
VkStructureType sType;
const void* pNext;
uint32_t swapchainCount;
const uint64_t* pPresentIds;
} VkPresentIdKHR;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
swapchainCountis the number of swapchains being presented to thevkQueuePresentKHRcommand. -
pPresentIdsisNULLor a pointer to an array ofuint64_twithswapchainCountentries. If notNULL, each non-zero value inpPresentIdsspecifies the present id to be associated with the presentation of the swapchain with the same index in the vkQueuePresentKHR call.
Description
For applications to be able to reference specific presentation events queued
by a call to vkQueuePresentKHR, an identifier needs to be associated
with them.
When the presentId feature is enabled,
applications can include the VkPresentIdKHR structure in the
pNext chain of the VkPresentInfoKHR structure to supply
identifiers.
Each VkSwapchainKHR has a presentId associated with it.
This value is initially zero when the VkSwapchainKHR is created.
When a VkPresentIdKHR structure with a non-NULL pPresentIds is
included in the pNext chain of a VkPresentInfoKHR structure,
each pSwapchains entry has a presentId associated in the
pPresentIds array at the same index as the swapchain in the
pSwapchains array.
If this presentId is non-zero, then the application can later use this
value to refer to that image presentation.
A value of zero indicates that this presentation has no associated
presentId.
A non-zero presentId must be greater than any non-zero presentId passed
previously by the application for the same swapchain.
There is no requirement for any precise timing relationship between the presentation of the image to the user and the update of the presentId value, but implementations should make this as close as possible to the presentation of the first pixel in the new image to the user.
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.