Class NVLowLatency2
Description
This extension gives applications timing suggestions on when to start the recording of new frames to reduce the latency between input sampling and frame presentation. Applications can accomplish this through the extension by calling SetLatencySleepModeNV to allow the driver to pace a given swapchain, then calling LatencySleepNV before input sampling to delay the start of the CPU side work. Additional methods and structures are provided to give insight into the latency pipeline of an application through the latency markers. VK_NV_low_latency provides legacy support for applications that make use of the NVIDIA Reflex SDK whereas new implementations should use the VK_NV_low_latency2 extension.
- Name String
VK_NV_low_latency2- Extension Type
- Device extension
- Registered Extension Number
- 506
- Revision
- 2
- Extension and Version Dependencies
- Version 1.2 or
VK_KHR_timeline_semaphore - Contact
- Charles Hansen cshansen
Other Extension Metadata
- Last Modified Date
- 2023-09-25
- Contributors
- Charles Hansen, NVIDIA
- Liam Middlebrook, NVIDIA
- Lionel Duc, NVIDIA
- James Jones, NVIDIA
- Eric Sullivan, NVIDIA
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final intVkLatencyMarkerNV - Structure used to mark different points in latencystatic final StringThe extension name.static final intThe extension specification version.static final intVkOutOfBandQueueTypeNV - Type of out of band queuestatic final intVkOutOfBandQueueTypeNV - Type of out of band queuestatic final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkGetLatencyTimingsNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pLatencyMarkerInfo) Unsafe version of:GetLatencyTimingsNVstatic intnvkLatencySleepNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pSleepInfo) Unsafe version of:LatencySleepNVstatic voidnvkQueueNotifyOutOfBandNV(org.lwjgl.vulkan.VkQueue queue, long pQueueTypeInfo) Unsafe version of:QueueNotifyOutOfBandNVstatic voidnvkSetLatencyMarkerNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pLatencyMarkerInfo) Unsafe version of:SetLatencyMarkerNVstatic intnvkSetLatencySleepModeNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pSleepModeInfo) Unsafe version of:SetLatencySleepModeNVstatic voidvkGetLatencyTimingsNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkGetLatencyMarkerInfoNV pLatencyMarkerInfo) Get latency marker results.static intvkLatencySleepNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkLatencySleepInfoNV pSleepInfo) Trigger low latency mode Sleep.static voidvkQueueNotifyOutOfBandNV(org.lwjgl.vulkan.VkQueue queue, VkOutOfBandQueueTypeInfoNV pQueueTypeInfo) Notify out of band queue.static voidvkSetLatencyMarkerNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkSetLatencyMarkerInfoNV pLatencyMarkerInfo) Pass in marker for timing info.static intvkSetLatencySleepModeNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkLatencySleepModeInfoNV pSleepModeInfo) Enable or Disable low latency mode on a swapchain.
-
Field Details
-
VK_NV_LOW_LATENCY_2_SPEC_VERSION
public static final int VK_NV_LOW_LATENCY_2_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_NV_LOW_LATENCY_2_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
public static final int VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
public static final int VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
public static final int VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
public static final int VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
public static final int VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
public static final int VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
public static final int VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
public static final int VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
public static final int VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NVExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NVSTRUCTURE_TYPE_LATENCY_SLEEP_INFO_NVSTRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NVSTRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NVSTRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NVSTRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NVSTRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NVSTRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
- See Also:
-
VK_LATENCY_MARKER_SIMULATION_START_NV
public static final int VK_LATENCY_MARKER_SIMULATION_START_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_SIMULATION_END_NV
public static final int VK_LATENCY_MARKER_SIMULATION_END_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_RENDERSUBMIT_START_NV
public static final int VK_LATENCY_MARKER_RENDERSUBMIT_START_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_RENDERSUBMIT_END_NV
public static final int VK_LATENCY_MARKER_RENDERSUBMIT_END_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_PRESENT_START_NV
public static final int VK_LATENCY_MARKER_PRESENT_START_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_PRESENT_END_NV
public static final int VK_LATENCY_MARKER_PRESENT_END_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_INPUT_SAMPLE_NV
public static final int VK_LATENCY_MARKER_INPUT_SAMPLE_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_TRIGGER_FLASH_NV
public static final int VK_LATENCY_MARKER_TRIGGER_FLASH_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV
public static final int VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV
public static final int VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV
public static final int VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV
public static final int VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NVVkLatencyMarkerNV - Structure used to mark different points in latencyDescription
The members of the
VkLatencyMarkerNVare used as arguments forSetLatencyMarkerNVin the use cases described below:LATENCY_MARKER_SIMULATION_START_NVshould be called at the start of the simulation execution each frame, but after the call tovkLatencySleepNV.LATENCY_MARKER_SIMULATION_END_NVshould be called at the end of the simulation execution each frame.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.LATENCY_MARKER_RENDERSUBMIT_END_NVshould be called at the end of the render submission execution each frame.LATENCY_MARKER_PRESENT_START_NVshould be called just beforevkQueuePresentKHR.LATENCY_MARKER_PRESENT_END_NVshould be called whenvkQueuePresentKHRreturns.LATENCY_MARKER_INPUT_SAMPLE_NVshould be called just before the application gathers input data.LATENCY_MARKER_TRIGGER_FLASH_NVshould be called anywhere betweenLATENCY_MARKER_SIMULATION_START_NVandLATENCY_MARKER_SIMULATION_END_NVwhenever a left mouse click occurs.
See Also
Enum values:
- See Also:
-
VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV
public static final int VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NVVkOutOfBandQueueTypeNV - Type of out of band queueDescription
The members of the
VkOutOfBandQueueTypeNVare used to describe the queue type inVkOutOfBandQueueTypeInfoNVas described below:OUT_OF_BAND_QUEUE_TYPE_RENDER_NVspecifies that work will be submitted to this queue.OUT_OF_BAND_QUEUE_TYPE_PRESENT_NVspecifies that this queue will be presented from.
See Also
- See Also:
-
VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV
public static final int VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NVVkOutOfBandQueueTypeNV - Type of out of band queueDescription
The members of the
VkOutOfBandQueueTypeNVare used to describe the queue type inVkOutOfBandQueueTypeInfoNVas described below:OUT_OF_BAND_QUEUE_TYPE_RENDER_NVspecifies that work will be submitted to this queue.OUT_OF_BAND_QUEUE_TYPE_PRESENT_NVspecifies that this queue will be presented from.
See Also
- See Also:
-
-
Method Details
-
nvkSetLatencySleepModeNV
public static int nvkSetLatencySleepModeNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pSleepModeInfo) Unsafe version of:SetLatencySleepModeNV -
vkSetLatencySleepModeNV
public static int vkSetLatencySleepModeNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkLatencySleepModeInfoNV pSleepModeInfo) Enable or Disable low latency mode on a swapchain.C Specification
To enable or disable low latency mode on a swapchain, call:
VkResult vkSetLatencySleepModeNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);Description
If
pSleepModeInfoisNULL,vkSetLatencySleepModeNVwill disable low latency mode, low latency boost, and set the minimum present interval previously specified byVkLatencySleepModeInfoNVto zero onswapchain. As an exception to the normal rules for objects which are externally synchronized, the swapchain passed tovkSetLatencySleepModeNVmay be simultaneously used by other threads in calls to functions other thanDestroySwapchainKHR. Access to the swapchain data associated with this extension must be atomic within the implementation.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandlepSleepModeInfomust be a valid pointer to a validVkLatencySleepModeInfoNVstructureswapchainmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to enable or disable low latency mode on.pSleepModeInfo-NULLor a pointer to aVkLatencySleepModeInfoNVstructure specifying the parameters of the latency sleep mode.
-
nvkLatencySleepNV
public static int nvkLatencySleepNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pSleepInfo) Unsafe version of:LatencySleepNV -
vkLatencySleepNV
public static int vkLatencySleepNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkLatencySleepInfoNV pSleepInfo) Trigger low latency mode Sleep.C Specification
To provide the synchronization primitive used to delay host CPU work for lower latency rendering, call:
VkResult vkLatencySleepNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);Description
vkLatencySleepNVreturns immediately. Applications should useWaitSemaphoreswithpSleepInfo→signalSemaphoreto delay host CPU work. CPU work refers to application work done before presenting which includes but is not limited to: input sampling, simulation, command buffer recording, command buffer submission, and present submission. Applications should call this function before input sampling, and exactly once between presents.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandlepSleepInfomust be a valid pointer to a validVkLatencySleepInfoNVstructureswapchainmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
See Also
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to delay associated CPU work based onVkLatencySubmissionPresentIdNVsubmissions.pSleepInfo- a pointer to aVkLatencySleepInfoNVstructure specifying the parameters of the latency sleep.
-
nvkSetLatencyMarkerNV
public static void nvkSetLatencyMarkerNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pLatencyMarkerInfo) Unsafe version of:SetLatencyMarkerNV -
vkSetLatencyMarkerNV
public static void vkSetLatencyMarkerNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkSetLatencyMarkerInfoNV pLatencyMarkerInfo) Pass in marker for timing info.C Specification
An application can provide timestamps at various stages of its frame generation work by calling:
void vkSetLatencyMarkerNV( VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);Description
At the beginning and end of simulation and render threads and beginning and end of
QueuePresentKHRcalls,vkSetLatencyMarkerNVcan be called to provide timestamps for the application’s reference. These timestamps are returned with a call toGetLatencyTimingsNValongside driver provided timestamps at various points of interest with regards to latency within the application. As an exception to the normal rules for objects which are externally synchronized, the swapchain passed tovkSetLatencyMarkerNVmay be simultaneously used by other threads in calls to functions other thanDestroySwapchainKHR. Access to the swapchain data associated with this extension must be atomic within the implementation.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandlepLatencyMarkerInfomust be a valid pointer to a validVkSetLatencyMarkerInfoNVstructureswapchainmust have been created, allocated, or retrieved fromdevice
See Also
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to capture timestamps on.
-
nvkGetLatencyTimingsNV
public static void nvkGetLatencyTimingsNV(org.lwjgl.vulkan.VkDevice device, long swapchain, long pLatencyMarkerInfo) Unsafe version of:GetLatencyTimingsNV -
vkGetLatencyTimingsNV
public static void vkGetLatencyTimingsNV(org.lwjgl.vulkan.VkDevice device, long swapchain, VkGetLatencyMarkerInfoNV pLatencyMarkerInfo) Get latency marker results.C Specification
To get an array containing the newest collected latency data, call:
void vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);Description
The timings returned by
vkGetLatencyTimingsNVcontain the timestamps requested fromSetLatencyMarkerNVand additional implementation-specific markers defined inVkLatencyTimingsFrameReportNV.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandlepLatencyMarkerInfomust be a valid pointer to aVkGetLatencyMarkerInfoNVstructureswapchainmust have been created, allocated, or retrieved fromdevice
See Also
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to return data from.
-
nvkQueueNotifyOutOfBandNV
public static void nvkQueueNotifyOutOfBandNV(org.lwjgl.vulkan.VkQueue queue, long pQueueTypeInfo) Unsafe version of:QueueNotifyOutOfBandNV -
vkQueueNotifyOutOfBandNV
public static void vkQueueNotifyOutOfBandNV(org.lwjgl.vulkan.VkQueue queue, VkOutOfBandQueueTypeInfoNV pQueueTypeInfo) Notify out of band queue.C Specification
To mark a queue as out of band, so that all
vkQueueSubmitcalls on the queue are ignored for latency evaluation, call:void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);Valid Usage (Implicit)
queuemust be a validVkQueuehandlepQueueTypeInfomust be a valid pointer to a validVkOutOfBandQueueTypeInfoNVstructure
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type - - - Any - See Also
- Parameters:
queue- the VkQueue to be marked as out of band.pQueueTypeInfo- a pointer to aVkOutOfBandQueueTypeInfoNVstructure specifying the queue type.
-