C Specification

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

// Provided by VK_NV_external_sci_sync
VkResult vkGetSemaphoreSciSyncObjNV(
    VkDevice                                    device,
    const VkSemaphoreGetSciSyncInfoNV*          pGetSciSyncInfo,
    void*                                       pHandle);


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

  • pGetSciSyncInfo is a pointer to a VkSemaphoreGetSciSyncInfoNV structure containing parameters of the export operation.

  • pHandle will return the NvSciSyncObj representing the semaphore payload.


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

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

  • VUID-vkGetSemaphoreSciSyncObjNV-pGetSciSyncInfo-parameter
    pGetSciSyncInfo must be a valid pointer to a valid VkSemaphoreGetSciSyncInfoNV structure

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