NvSciSync Object Import into Vulkan SC

Import NvSciSyncObj to VkFence

Use the vkImportFenceSciSyncObjNV API to import an NvSciSync object into Vulkan SC address space. This API takes a valid sync point-backed NvSciSyncObj as a parameter to VkImportFenceSciSyncInfoNV::handle. The application must specify VkImportFenceSciSyncInfoNV::handleType to VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV.

Import NvSciSyncObj to VkSemaphore

Use the vkCreateSemaphoreSciSyncPoolNV API to import an NvSciSync object into the Vulkan SC address space. This API accepts a valid sysmem semaphore-backed NvSciSyncObj as a parameter to VkSemaphoreSciSyncPoolCreateInfoNV::handle. Once completed successfully, this API returns a valid VkSemaphoreSciSyncPoolNV object as a pool for VkSemaphore objects, because an NvSciSyncObj may represent more than one sysmem semaphore. Application can later retrieve the VkSemaphore object from the VkSemaphoreSciSyncPoolNV object.

For both VkFence and VkSemaphore imports, Vulkan SC will only create a new reference on the imported NvSciSync object; the application must use the NvSciSync API to destroy the NvSciSync object.