Enum
VkLatencyMarkerNV
Structure used to mark different points in latency
The VkLatencyMarkerNV enum is defined as:
typedef enum VkLatencyMarkerNV {
VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
VK_LATENCY_MARKER_PRESENT_START_NV = 4,
VK_LATENCY_MARKER_PRESENT_END_NV = 5,
VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
} VkLatencyMarkerNV;
pub struct LatencyMarkerNV(u32);
impl LatencyMarkerNV {
pub const SIMULATION_START: Self = 0;
pub const SIMULATION_END: Self = 1;
pub const RENDERSUBMIT_START: Self = 2;
pub const RENDERSUBMIT_END: Self = 3;
pub const PRESENT_START: Self = 4;
pub const PRESENT_END: Self = 5;
pub const INPUT_SAMPLE: Self = 6;
pub const TRIGGER_FLASH: Self = 7;
pub const OUT_OF_BAND_RENDERSUBMIT_START: Self = 8;
pub const OUT_OF_BAND_RENDERSUBMIT_END: Self = 9;
pub const OUT_OF_BAND_PRESENT_START: Self = 10;
pub const OUT_OF_BAND_PRESENT_END: Self = 11;
}
The members of the VkLatencyMarkerNV are used as arguments for vkSetLatencyMarkerNV in the use cases described below:
VK_LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.VK_LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.VK_LATENCY_MARKER_RENDERSUBMIT_START_NVshould be called at the beginning of the render submission execution each frame. This should be wherever Vulkan API calls are made and must not span into asynchronous rendering.VK_LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.VK_LATENCY_MARKER_PRESENT_START_NVshould be called just before thevkQueuePresentKHRcall requesting presentation of an application-rendered frame.VK_LATENCY_MARKER_PRESENT_END_NVshould be called when thatvkQueuePresentKHRcall returns. This may be used to delimit workload submissions between application-rendered frames according to the rules defined in Frame Attribution.VK_LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.VK_LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenVK_LATENCY_MARKER_SIMULATION_START_NVandVK_LATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
The
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV, and
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV markers are not intended
for use by typical applications.
See Frame Attribution for information on how the
implementation interprets these markers.Intermediate layers, such as frame-generation implementations, may defer or
replace
vkQueuePresentKHR calls.
Such layers should leave the original
VK_LATENCY_MARKER_PRESENT_START_NV and
VK_LATENCY_MARKER_PRESENT_END_NV markers in place and emit
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV and
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV markers surrounding each
of their vkQueuePresentKHR calls.Parent
VK_NV_low_latency2Type
Enum