vkGetPastPresentationTimingGOOGLE
The implementation will maintain a limited amount of history of timing
information about previous presents.
Because of the asynchronous nature of the presentation engine, the timing
information for a given vkQueuePresentKHR command will become
available some time later.
These time values can be asynchronously queried, and will be returned if
available.
All time values are in nanoseconds, relative to a monotonically-increasing
clock (e.g. CLOCK_MONOTONIC
(see clock_gettime(2)) on Android and Linux).
To asynchronously query the presentation engine, for newly-available timing information about one or more previous presents to a given swapchain, call:
VkResult vkGetPastPresentationTimingGOOGLE(
VkDevice device,
VkSwapchainKHR swapchain,
uint32_t* pPresentationTimingCount,
VkPastPresentationTimingGOOGLE* pPresentationTimings);
device
is the device associated withswapchain
.swapchain
is the swapchain to obtain presentation timing information duration for.pPresentationTimingCount
is a pointer to an integer related to the number ofVkPastPresentationTimingGOOGLE
structures to query, as described below.pPresentationTimings
is eitherNULL
or a pointer to an array ofVkPastPresentationTimingGOOGLE
structures.
If pPresentationTimings
is NULL
, then the number of newly-available
timing records for the given swapchain
is returned in
pPresentationTimingCount
.
Otherwise, pPresentationTimingCount
must point to a variable set by
the user to the number of elements in the pPresentationTimings
array,
and on return the variable is overwritten with the number of structures
actually written to pPresentationTimings
.
If the value of pPresentationTimingCount
is less than the number of
newly-available timing records, at most pPresentationTimingCount
structures will be written, and VK_INCOMPLETE
will be returned instead
of VK_SUCCESS
, to indicate that not all the available timing records
were returned.
Valid Usage (Implicit)
VUID-vkGetPastPresentationTimingGOOGLE-device-parameter
device
must be a valid VkDevice handle
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter
swapchain
must be a valid VkSwapchainKHR handle
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter
pPresentationTimingCount
must be a valid pointer to a uint32_t
value
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter
If the value referenced by pPresentationTimingCount
is not 0
, and pPresentationTimings
is not NULL
, pPresentationTimings
must be a valid pointer to an array of pPresentationTimingCount
VkPastPresentationTimingGOOGLE structures
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parent
swapchain
must have been created, allocated, or retrieved from device
Host Synchronization
- Host access to
swapchain
must be externally synchronized ::