C Specification
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:
// Provided by VK_GOOGLE_display_timing
VkResult vkGetPastPresentationTimingGOOGLE(
VkDevice device,
VkSwapchainKHR swapchain,
uint32_t* pPresentationTimingCount,
VkPastPresentationTimingGOOGLE* pPresentationTimings);
Parameters
-
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.
Description
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.
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.