Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype VkExternalSemaphoreHandleTypeFlagBits = VkExternalSemaphoreHandleTypeFlagBits VkFlags
- pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits
- pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: VkExternalSemaphoreHandleTypeFlagBits
- pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: VkExternalSemaphoreHandleTypeFlagBits
- pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT :: VkExternalSemaphoreHandleTypeFlagBits
- pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits
- newtype VkExternalSemaphoreFeatureFlagBits = VkExternalSemaphoreFeatureFlagBits VkFlags
- pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits
- pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits
- pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO :: VkStructureType
- pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES :: VkStructureType
- vkGetPhysicalDeviceExternalSemaphoreProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO ()
- data VkPhysicalDeviceExternalSemaphoreInfo = VkPhysicalDeviceExternalSemaphoreInfo {}
- data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties {}
- type VkExternalSemaphoreHandleTypeFlags = VkExternalSemaphoreHandleTypeFlagBits
- type VkExternalSemaphoreFeatureFlags = VkExternalSemaphoreFeatureFlagBits
Documentation
newtype VkExternalSemaphoreHandleTypeFlagBits Source #
VkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external semaphore handle types
Description
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must be compatible with the POSIX system callsdup
,dup2
,close
, and the non-standard system calldup3
. Additionally, it must be transportable over a socket using anSCM_RIGHTS
control message. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object.
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must be compatible with the functionsDuplicateHandle
,CloseHandle
,CompareObjectHandles
,GetHandleInformation
, andSetHandleInformation
. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
specifies a global share handle that has only limited valid usage outside of Vulkan and other compatible APIs. It is not compatible with any native APIs. It does not own a reference to the underlying synchronization primitive represented its Vulkan semaphore object, and will therefore become invalid when all Vulkan semaphore objects associated with it are destroyed.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
specifies an NT handle returned byID3D12Device
::CreateSharedHandle
referring to a Direct3D 12 fence. It owns a reference to the underlying synchronization primitive associated with the Direct3D fence.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
specifies a POSIX file descriptor handle to a Linux Sync File or Android Fence object. It can be used with any native API accepting a valid sync file or fence as input. It owns a reference to the underlying synchronization primitive associated with the file descriptor. Implementations which support importing this handle type must accept any type of sync or fence FD supported by the native system they are running on.
Note
Handles of type VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
generated by the implementation may represent either Linux Sync Files or
Android Fences at the implementation’s discretion. Applications should
only use operations defined for both types of file descriptors, unless
they know via means external to Vulkan the type of the file descriptor,
or are prepared to deal with the system-defined operation failures
resulting from using the wrong type.
Some external semaphore handle types can only be shared within the same underlying physical device and/or the same driver version, as defined in the following table:
Handle type | VkPhysicalDeviceIDProperties ::driverUUID | VkPhysicalDeviceIDProperties ::deviceUUID |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT | Must match | Must match |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT | Must match | Must match |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT | Must match | Must match |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT | Must match | Must match |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT | No restriction | No restriction |
External semaphore handle types compatibility
See Also
VkExternalSemaphoreHandleTypeFlags
,
VkImportSemaphoreFdInfoKHR
,
VkImportSemaphoreWin32HandleInfoKHR
,
VkPhysicalDeviceExternalSemaphoreInfo
,
VkSemaphoreGetFdInfoKHR
,
VkSemaphoreGetWin32HandleInfoKHR
Instances
pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits Source #
pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: VkExternalSemaphoreHandleTypeFlagBits Source #
pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: VkExternalSemaphoreHandleTypeFlagBits Source #
pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT :: VkExternalSemaphoreHandleTypeFlagBits Source #
pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits Source #
newtype VkExternalSemaphoreFeatureFlagBits Source #
VkExternalSemaphoreFeatureFlagBits - Bitfield describing features of an external semaphore handle type
See Also
Instances
pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits Source #
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
specifies that handles of
this type can be exported from Vulkan semaphore objects.
pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits Source #
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
specifies that handles of
this type can be imported as Vulkan semaphore objects.
vkGetPhysicalDeviceExternalSemaphoreProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO () Source #
vkGetPhysicalDeviceExternalSemaphoreProperties - Function for querying external semaphore handle capabilities.
Parameters
physicalDevice
is the physical device from which to query the semaphore capabilities.
pExternalSemaphoreInfo
points to an instance of theVkPhysicalDeviceExternalSemaphoreInfo
structure, describing the parameters that would be consumed byvkCreateSemaphore
.pExternalSemaphoreProperties
points to an instance of theVkExternalSemaphoreProperties
structure in which capabilities are returned.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
pExternalSemaphoreInfo
must be a valid pointer to a validVkPhysicalDeviceExternalSemaphoreInfo
structurepExternalSemaphoreProperties
must be a valid pointer to aVkExternalSemaphoreProperties
structure
See Also
VkExternalSemaphoreProperties
,
VkPhysicalDevice
,
VkPhysicalDeviceExternalSemaphoreInfo
data VkPhysicalDeviceExternalSemaphoreInfo Source #
VkPhysicalDeviceExternalSemaphoreInfo - Structure specifying semaphore creation parameters.
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
pNext
must beNULL
handleType
must be a validVkExternalSemaphoreHandleTypeFlagBits
value
See Also
VkExternalSemaphoreHandleTypeFlagBits
,
VkStructureType
,
vkGetPhysicalDeviceExternalSemaphoreProperties
,
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
VkPhysicalDeviceExternalSemaphoreInfo | |
|
Instances
data VkExternalSemaphoreProperties Source #
VkExternalSemaphoreProperties - Structure describing supported external semaphore handle features
Description
If handleType
is not supported by the implementation, then
VkExternalSemaphoreProperties
::externalSemaphoreFeatures
will be set
to zero.
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
pNext
must beNULL
See Also
VkExternalSemaphoreFeatureFlags
, VkExternalSemaphoreHandleTypeFlags
,
VkStructureType
,
vkGetPhysicalDeviceExternalSemaphoreProperties
,
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
VkExternalSemaphoreProperties | |
|
Instances
type VkExternalSemaphoreHandleTypeFlags = VkExternalSemaphoreHandleTypeFlagBits Source #
VkExternalSemaphoreHandleTypeFlags - Bitmask of VkExternalSemaphoreHandleTypeFlagBits
Description
VkExternalSemaphoreHandleTypeFlags
is a bitmask type for setting a
mask of zero or more VkExternalSemaphoreHandleTypeFlagBits
.
See Also
VkExportSemaphoreCreateInfo
,
VkExternalSemaphoreHandleTypeFlagBits
, VkExternalSemaphoreProperties
type VkExternalSemaphoreFeatureFlags = VkExternalSemaphoreFeatureFlagBits Source #
VkExternalSemaphoreFeatureFlags - Bitmask of VkExternalSemaphoreFeatureFlagBitsKHR
Description
VkExternalSemaphoreFeatureFlags
is a bitmask type for setting a mask
of zero or more VkExternalSemaphoreFeatureFlagBits
.
See Also
VkExternalSemaphoreFeatureFlagBits
, VkExternalSemaphoreProperties