C Specification

To import a semaphore payload from a NvSciSyncObj, call:

// Provided by VK_NV_external_sci_sync
VkResult vkImportSemaphoreSciSyncObjNV(
    VkDevice                                    device,
    const VkImportSemaphoreSciSyncInfoNV*       pImportSemaphoreSciSyncInfo);


  • device is the logical device that created the semaphore.

  • pImportSemaphoreSciSyncInfo is a pointer to a VkImportSemaphoreSciSyncInfoNV structure containing parameters of the import operation


Importing a semaphore payload from NvSciSyncObj does not transfer ownership of the handle to the Vulkan implementation. When importing NvSciSyncObj, Vulkan will make a new reference to that object, the application must release its ownership using NvSciSync APIs when that ownership is no longer needed.

Application must not import the same NvSciSyncObj with signaler access permissions into multiple instances of VkSemaphore, and must not import into the same instance from which it was exported.

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

  • VUID-vkImportSemaphoreSciSyncObjNV-pImportSemaphoreSciSyncInfo-parameter
    pImportSemaphoreSciSyncInfo must be a valid pointer to a valid VkImportSemaphoreSciSyncInfoNV structure

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