Structures

VkLatencyTimingsFrameReportNV

Structure containing latency data

The VkLatencyTimingsFrameReportNV structure describes latency data returned by vkGetLatencyTimingsNV

typedef struct VkLatencyTimingsFrameReportNV {
    VkStructureType sType;
    const void* pNext;
    uint64_t presentID;
    uint64_t inputSampleTimeUs;
    uint64_t simStartTimeUs;
    uint64_t simEndTimeUs;
    uint64_t renderSubmitStartTimeUs;
    uint64_t renderSubmitEndTimeUs;
    uint64_t presentStartTimeUs;
    uint64_t presentEndTimeUs;
    uint64_t driverStartTimeUs;
    uint64_t driverEndTimeUs;
    uint64_t osRenderQueueStartTimeUs;
    uint64_t osRenderQueueEndTimeUs;
    uint64_t gpuRenderStartTimeUs;
    uint64_t gpuRenderEndTimeUs;
} VkLatencyTimingsFrameReportNV;

The members of the VkLatencyTimingsFrameReportNV structure describe the following:

  • presentID is the application provided value that is used to associate the timestamp with a vkQueuePresentKHR command using VkPresentIdKHR::pPresentIds for a given present.
  • simStartTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_SIMULATION_START_NV.
  • simEndTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_SIMULATION_END_NV
  • renderStartTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_RENDERSUBMIT_START_NV.
  • renderEndTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_RENDERSUBMIT_END_NV.
  • presentStartTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_PRESENT_START_NV.
  • presentEndTimeUs is the timestamp written when vkSetLatencyMarkerNV is called with the VkLatencyMarkerNV enum VK_LATENCY_MARKER_PRESENT_END_NV.
  • driverStartTimeUs is the timestamp written when the first vkQueueSubmit for the frame is called.
  • driverEndTimeUs is the timestamp written when the final vkQueueSubmit hands off from the Vulkan Driver.
  • osRenderQueueStartTimeUs is the timestamp written when the final vkQueueSubmit hands off from the Vulkan Driver.
  • osRenderQueueEndTimeUs is the timestamp written when the first submission reaches the GPU.
  • gpuRenderStartTimeUs is the timestamp written when the first submission reaches the GPU.
  • gpuRenderEndTimeUs is the timestamp written when the final submission finishes on the GPU for the frame.

Valid Usage (Implicit)

VUID-VkLatencyTimingsFrameReportNV-sType-sType

sType must be VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV