vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Synopsis

Documentation

newtype ExternalSemaphoreHandleTypeFlagBits Source #

VkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external semaphore handle types

Description

Note

Handles of type 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 typePhysicalDeviceIDProperties::driverUUIDPhysicalDeviceIDProperties::deviceUUID
EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BITMust matchMust match
EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BITMust matchMust match
EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BITMust matchMust match
EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BITMust matchMust match
EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BITNo restrictionNo restriction
EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIANo restrictionNo restriction

External semaphore handle types compatibility

See Also

VK_VERSION_1_1, ExternalSemaphoreHandleTypeFlags, ImportSemaphoreFdInfoKHR, ImportSemaphoreWin32HandleInfoKHR, ImportSemaphoreZirconHandleInfoFUCHSIA, PhysicalDeviceExternalSemaphoreInfo, SemaphoreGetFdInfoKHR, SemaphoreGetWin32HandleInfoKHR, SemaphoreGetZirconHandleInfoFUCHSIA

Bundled Patterns

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT :: ExternalSemaphoreHandleTypeFlagBits

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 calls dup, dup2, close, and the non-standard system call dup3. Additionally, it must be transportable over a socket using an SCM_RIGHTS control message. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object.

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: ExternalSemaphoreHandleTypeFlagBits

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 functions DuplicateHandle, CloseHandle, CompareObjectHandles, GetHandleInformation, and SetHandleInformation. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object.

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: ExternalSemaphoreHandleTypeFlagBits

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 by its Vulkan semaphore object, and will therefore become invalid when all Vulkan semaphore objects associated with it are destroyed.

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT :: ExternalSemaphoreHandleTypeFlagBits

EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT specifies an NT handle returned by ID3D12Device::CreateSharedHandle referring to a Direct3D 12 fence, or ID3D11Device5::createFence referring to a Direct3D 11 fence. It owns a reference to the underlying synchronization primitive associated with the Direct3D fence.

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT :: ExternalSemaphoreHandleTypeFlagBits

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.

pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA :: ExternalSemaphoreHandleTypeFlagBits

EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA specifies a handle to a Zircon event object. It can be used with any native API that accepts a Zircon event handle. Zircon event handles are created with ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights. Vulkan on Fuchsia uses only the ZX_EVENT_SIGNALED bit when signaling or waiting.

Instances

Instances details
Storable ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Bits ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Methods

(.&.) :: ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits #

(.|.) :: ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits #

xor :: ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits #

complement :: ExternalSemaphoreHandleTypeFlagBits -> ExternalSemaphoreHandleTypeFlagBits #

shift :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

rotate :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

zeroBits :: ExternalSemaphoreHandleTypeFlagBits #

bit :: Int -> ExternalSemaphoreHandleTypeFlagBits #

setBit :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

clearBit :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

complementBit :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

testBit :: ExternalSemaphoreHandleTypeFlagBits -> Int -> Bool #

bitSizeMaybe :: ExternalSemaphoreHandleTypeFlagBits -> Maybe Int #

bitSize :: ExternalSemaphoreHandleTypeFlagBits -> Int #

isSigned :: ExternalSemaphoreHandleTypeFlagBits -> Bool #

shiftL :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

unsafeShiftL :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

shiftR :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

unsafeShiftR :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

rotateL :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

rotateR :: ExternalSemaphoreHandleTypeFlagBits -> Int -> ExternalSemaphoreHandleTypeFlagBits #

popCount :: ExternalSemaphoreHandleTypeFlagBits -> Int #

FiniteBits ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Read ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Show ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Eq ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Ord ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits

Zero ExternalSemaphoreHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits