C Specification

To create a semaphore of a specific type, add a VkSemaphoreTypeCreateInfoKHR structure to the pNext chain of the VkSemaphoreCreateInfo structure. The VkSemaphoreTypeCreateInfoKHR structure is defined as:

typedef struct VkSemaphoreTypeCreateInfoKHR {
    VkStructureType       sType;
    const void*           pNext;
    VkSemaphoreTypeKHR    semaphoreType;
    uint64_t              initialValue;
} VkSemaphoreTypeCreateInfoKHR;


  • sType is the type of this structure.

  • pNext is NULL or a pointer to an extension-specific structure.

  • semaphoreType is a VkSemaphoreTypeKHR value specifying the type of the semaphore.

  • initialValue is the initial payload value if semaphoreType is VK_SEMAPHORE_TYPE_TIMELINE_KHR.


Valid Usage (Implicit)

  • semaphoreType must be a valid VkSemaphoreTypeKHR value

Valid Usage
  • If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE_KHR

  • If semaphoreType is VK_SEMAPHORE_TYPE_BINARY_KHR, initialValue must be zero.

If no VkSemaphoreTypeCreateInfoKHR structure is included in the pNext chain of VkSemaphoreCreateInfo, then the created semaphore will have a default VkSemaphoreTypeKHR of VK_SEMAPHORE_TYPE_BINARY_KHR.

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 (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.