C Specification

The VkPhysicalDeviceExternalSciSync2FeaturesNV structure is defined as:

// Provided by VK_NV_external_sci_sync2
typedef struct VkPhysicalDeviceExternalSciSync2FeaturesNV {
    VkStructureType    sType;
    void*              pNext;
    VkBool32           sciSyncFence;
    VkBool32           sciSyncSemaphore2;
    VkBool32           sciSyncImport;
    VkBool32           sciSyncExport;
} VkPhysicalDeviceExternalSciSync2FeaturesNV;


The members of the VkPhysicalDeviceExternalSciSync2FeaturesNV structure describe the following features:


  • sciSyncFence indicates whether external fences created with a handle type of VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV and VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV are supported for import and/or export.

  • sciSyncSemaphore2 indicates whether semaphore SciSync pools are supported and semaphores can be created from NvSciSyncObj via VkSemaphoreSciSyncPoolNV objects. In this case, the application is responsible for the resource management of the NvSciSyncObj.

  • sciSyncImport indicates whether NvSciSyncObj import functionality is supported. If sciSyncImport is set to VK_TRUE, VkFence and/or VkSemaphore support importing NvSciSyncObj from applications. In this case, the application is responsible for the resource management of the NvSciSyncObj.

  • sciSyncExport indicates whether NvSciSyncObj export functionality is supported. If sciSyncExport is set to VK_TRUE, VkFence supports exporting NvSciSyncObj created by the driver to applications. In this case, the driver is responsible for the resource management of the NvSciSyncObj.

Table 1. Functionality supported for NvSciSync features




Always supported1


vkImportFenceSciSyncFenceNV, vkImportFenceSciSyncObjNV


vkGetFenceSciSyncFenceNV, vkGetFenceSciSyncObjNV, vkGetPhysicalDeviceSciSyncAttributesNV (with VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV)


vkCreateSemaphoreSciSyncPoolNV, VkSemaphoreSciSyncCreateInfoNV


vkGetPhysicalDeviceSciSyncAttributesNV (with VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV)


Functionality in this column is always available.

The Functionality supported for NvSciSync features table summarizes the functionality enabled by the VkPhysicalDeviceExternalSciSync2FeaturesNV structure. There are two orthogonal pieces of functionality: fence and semaphore support; import and export support. Each entry in the body of the table summarizes the functionality that can be used when the given features are supported and enabled. This summarizes Valid Usage statements that are added elsewhere in this specification.

If the VkPhysicalDeviceExternalSciSync2FeaturesNV structure is included in the pNext chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. VkPhysicalDeviceExternalSciSync2FeaturesNV can also be used in the pNext chain of VkDeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)
  • VUID-VkPhysicalDeviceExternalSciSync2FeaturesNV-sType-sType

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