C Specification

The VkLatencySubmissionPresentIdNV structure is defined as:

// Provided by VK_NV_low_latency2
typedef struct VkLatencySubmissionPresentIdNV {
    VkStructureType    sType;
    const void*        pNext;
    uint64_t           presentID;
} VkLatencySubmissionPresentIdNV;

Members

  • sType is a VkStructureType value identifying this structure.

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

  • presentID is the application-defined identifier of the application-rendered frame that this submission belongs to. It is not related to presentIds passed via VkPresentIdKHR::pPresentIds or VkPresentId2KHR::pPresentIds.

Description

If the implicit submission attribution rules defined in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#low-latency2-frame-attribution are not sufficient, an application can associate submissions with application-rendered frames by chaining VkLatencySubmissionPresentIdNV to its vkQueueSubmit or vkQueueSubmit2 calls. A non-zero presentID passed via VkLatencySubmissionPresentIdNV must be greater than or equal to any non-zero presentID previously passed via VkLatencySubmissionPresentIdNV on the same queue.

A logical device enters explicit submission attribution mode when any queue on that device receives a VkLatencySubmissionPresentIdNV with a non-zero presentID. While a device is in explicit submission attribution mode, each vkQueueSubmit or vkQueueSubmit2 call will be associated with the presentID value of the first of these rules to apply:

  • The presentID in VkLatencySubmissionPresentIdNV chained to the submission, if non-zero.

  • The most recent presentID passed via VkLatencySubmissionPresentIdNV on the same queue, if non-zero.

  • The maximum presentID previously passed via VkLatencySubmissionPresentIdNV on the device.

A vkQueueSubmit or vkQueueSubmit2 call that chains VkLatencySubmissionPresentIdNV with a presentID of zero clears the tracked presentID for that queue. The device will exit explicit submission attribution mode when all queues' tracked presentID values have been cleared. It will then return to using the implicit attribution rules.

Explicit submission attribution is only respected by implementations advertising support for VK_NV_low_latency2 with a VkExtensionProperties::specVersion greater than or equal to 3. Implementations advertising a lower specVersion ignore VkLatencySubmissionPresentIdNV, so applications should verify the advertised specVersion before relying on explicit submission attribution.

Note

Most applications do not need to pass VkLatencySubmissionPresentIdNV. The implicit rules described in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#low-latency2-frame-attribution are sufficient for the vast majority of applications.

Valid Usage (Implicit)

See Also

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.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0