vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Synopsis

Documentation

newtype ExternalFenceHandleTypeFlagBits Source #

VkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence handle types

Description

Some external fence 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 PhysicalDeviceIDProperties::driverUUID PhysicalDeviceIDProperties::deviceUUID
EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT Must match Must match
EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT Must match Must match
EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT Must match Must match
EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT No restriction No restriction

External fence handle types compatibility

See Also

ExternalFenceHandleTypeFlags, FenceGetFdInfoKHR, FenceGetWin32HandleInfoKHR, ImportFenceFdInfoKHR, ImportFenceWin32HandleInfoKHR, PhysicalDeviceExternalFenceInfo

Bundled Patterns

pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT :: ExternalFenceHandleTypeFlagBits

EXTERNAL_FENCE_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 fence object.

pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: ExternalFenceHandleTypeFlagBits

EXTERNAL_FENCE_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 fence object.

pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: ExternalFenceHandleTypeFlagBits

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

pattern EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT :: ExternalFenceHandleTypeFlagBits

EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT specifies a POSIX file descriptor handle to a Linux Sync File or Android Fence. 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.

Instances

Instances details
Eq ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Ord ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Read ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Show ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Storable ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Bits ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Methods

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

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

xor :: ExternalFenceHandleTypeFlagBits -> ExternalFenceHandleTypeFlagBits -> ExternalFenceHandleTypeFlagBits #

complement :: ExternalFenceHandleTypeFlagBits -> ExternalFenceHandleTypeFlagBits #

shift :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

rotate :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

zeroBits :: ExternalFenceHandleTypeFlagBits #

bit :: Int -> ExternalFenceHandleTypeFlagBits #

setBit :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

clearBit :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

complementBit :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

testBit :: ExternalFenceHandleTypeFlagBits -> Int -> Bool #

bitSizeMaybe :: ExternalFenceHandleTypeFlagBits -> Maybe Int #

bitSize :: ExternalFenceHandleTypeFlagBits -> Int #

isSigned :: ExternalFenceHandleTypeFlagBits -> Bool #

shiftL :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

unsafeShiftL :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

shiftR :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

unsafeShiftR :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

rotateL :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

rotateR :: ExternalFenceHandleTypeFlagBits -> Int -> ExternalFenceHandleTypeFlagBits #

popCount :: ExternalFenceHandleTypeFlagBits -> Int #

FiniteBits ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits

Zero ExternalFenceHandleTypeFlagBits Source # 
Instance details

Defined in Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits