C Specification

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

// Provided by VK_NV_external_sci_sync, VK_NV_external_sci_sync2
VkResult vkGetFenceSciSyncObjNV(
    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 will return the NvSciSyncObj handle representing the fence payload.


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

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

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

  • VUID-vkGetFenceSciSyncObjNV-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