VkPastPresentationTimingEXT
The VkPastPresentationTimingEXT structure is defined as:
typedef struct VkPastPresentationTimingEXT {
VkStructureType sType;
void* pNext;
uint64_t presentId;
uint64_t targetTime;
uint32_t presentStageCount;
VkPresentStageTimeEXT* pPresentStages;
VkTimeDomainKHR timeDomain;
uint64_t timeDomainId;
VkBool32 reportComplete;
} VkPastPresentationTimingEXT;
pub struct PastPresentationTimingEXT {
s_type: vk::StructureType,
p_next: *mut c_void,
present_id: u64, // Application-provided identifier, previously given to vkQueuePresentKHR
target_time: u64, // Application-provided present time
present_stage_count: u32, // Number of present stages results available in pPresentStages
p_present_stages: *mut vk::PresentStageTimeEXT, // Reported timings for each present stage
time_domain: vk::TimeDomainKHR, // Time domain of the present stages
time_domain_id: u64, // Time domain id of the present stages
report_complete: vk::Bool32, // VK_TRUE if all the present stages have been reported
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.presentIdis zero or a value that was given to a previousvkQueuePresentKHRcommand via VkPresentId2KHR::pPresentIds.targetTimeis the application-provided target absolute time or duration of the associated presentation request in VkPresentTimingInfoEXT::targetTime.presentStageCountis a count of items contained inpPresentStages.pPresentStagesa pointer to an array of VkPresentStageTimeEXT providing timing information for the presentation request associated withpresentId.timeDomainis the time domain used by the presentation engine to report times inpPresentStages.timeDomainIdis the id associated withtimeDomain.reportCompleteisVK_TRUEif the presentation engine has reported all the requested results inpPresentStages.
When calling vkGetPastPresentationTimingEXT, the implementation sets
presentStageCount to the number of present stages it has written
results for.
If VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT was
specified in VkPastPresentationTimingInfoEXT::flags, the
implementation may return an incomplete report containing fewer present
stage results than were queried by the associated presentation request.
Otherwise, results for all the present stages queried by the presentation
request are written by the implementation.
Timing information for some present stages may have a time value of 0, indicating that results for that present stage are not available.
For systems with multiple entities operating within the presentation engine,
such as multiple displays, pPresentStages will return timing results
for one entity which has been affected by the presentation.
timeDomainId may be different than the time domain that was specified
in VkPresentTimingInfoEXT::timeDomainId if the requirements for
using this time domain could not be met at the time the presentation engine
processed the presentation request.
In such a case, the presentation engine may pick a time domain to fall back
to, if one is available, and report results in that domain.
Applications can continue to use this fallback time domain in future
vkQueuePresentKHR calls, or they can call
vkGetSwapchainTimeDomainPropertiesEXT to choose from the currently
supported time domains.
Valid Usage (Implicit)
VUID-VkPastPresentationTimingEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT
VUID-VkPastPresentationTimingEXT-pNext-pNext
pNext must be NULL