C Specification

To export a NvSciSyncFence handle representing the payload of a fence, call:

// Provided by VK_NV_external_sci_sync, VK_NV_external_sci_sync2
VkResult vkGetFenceSciSyncFenceNV(
    VkDevice                                    device,
    const VkFenceGetSciSyncInfoNV*              pGetSciSyncHandleInfo,
    void*                                       pHandle);


  • device is the logical device that created the fence being exported.

  • pGetSciSyncHandleInfo is a pointer to a VkFenceGetSciSyncInfoNV structure containing parameters of the export operation.

  • pHandle is a pointer to a NvSciSyncFence which will contain the fence payload on return.


Each call to vkGetFenceSciSyncFenceNV will duplicate the underlying NvSciSyncFence handle and transfer the ownership of the NvSciSyncFence handle to the application. To avoid leaking resources, the application must release of the ownership of the NvSciSyncFence handle when it is no longer needed.

Valid Usage
Valid Usage (Implicit)
  • VUID-vkGetFenceSciSyncFenceNV-device-parameter
    device must be a valid VkDevice handle

  • VUID-vkGetFenceSciSyncFenceNV-pGetSciSyncHandleInfo-parameter
    pGetSciSyncHandleInfo must be a valid pointer to a valid VkFenceGetSciSyncInfoNV structure

  • VUID-vkGetFenceSciSyncFenceNV-pHandle-parameter
    pHandle must be a pointer value

Return Codes
On success, this command returns

On failure, this command returns


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-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0