VkPastPresentationTimingEXT(3)

Name

VkPastPresentationTimingEXT - Structure containing timing information about a previously-presented image

C Specification

The VkPastPresentationTimingEXT structure is defined as:

// Provided by VK_EXT_present_timing
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;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • presentId is zero or a value that was given to a previous vkQueuePresentKHR command via VkPresentId2KHR::pPresentIds.

  • targetTime is the application-provided target absolute time or duration of the associated presentation request in VkPresentTimingInfoEXT::targetTime.

  • presentStageCount is a count of items contained in pPresentStages.

  • pPresentStages a pointer to an array of VkPresentStageTimeEXT providing timing information for the presentation request associated with presentId.

  • timeDomain is the time domain used by the presentation engine to report times in pPresentStages.

  • timeDomainId is the id associated with timeDomain.

  • reportComplete is VK_TRUE if the presentation engine has reported all the requested results in pPresentStages.

Description

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

  • VUID-VkPastPresentationTimingEXT-pPresentStages-parameter
    pPresentStages must be a valid pointer to an array of presentStageCount VkPresentStageTimeEXT structures

  • VUID-VkPastPresentationTimingEXT-timeDomain-parameter
    timeDomain must be a valid VkTimeDomainKHR value

  • VUID-VkPastPresentationTimingEXT-presentStageCount-arraylength
    presentStageCount must be greater than 0

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.