vulkan-2.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities

Synopsis

Documentation

newtype VkExternalFenceHandleTypeFlagBits Source #

VkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence handle types

Description

  • VK_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.
  • VK_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.
  • VK_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.
  • VK_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.

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 VkPhysicalDeviceIDProperties::driverUUID VkPhysicalDeviceIDProperties::deviceUUID
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT Must match Must match
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT Must match Must match
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT Must match Must match
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT No restriction No restriction

External fence handle types compatibility

See Also

VkExternalFenceHandleTypeFlags, VkFenceGetFdInfoKHR, VkFenceGetWin32HandleInfoKHR, VkImportFenceFdInfoKHR, VkImportFenceWin32HandleInfoKHR, VkPhysicalDeviceExternalFenceInfo

Instances
Eq VkExternalFenceHandleTypeFlagBits Source # 
Instance details
Ord VkExternalFenceHandleTypeFlagBits Source # 
Instance details
Read VkExternalFenceHandleTypeFlagBits Source # 
Instance details
Show VkExternalFenceHandleTypeFlagBits Source # 
Instance details
Storable VkExternalFenceHandleTypeFlagBits Source # 
Instance details
Bits VkExternalFenceHandleTypeFlagBits Source # 
Instance details

Methods

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

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

xor :: VkExternalFenceHandleTypeFlagBits -> VkExternalFenceHandleTypeFlagBits -> VkExternalFenceHandleTypeFlagBits #

complement :: VkExternalFenceHandleTypeFlagBits -> VkExternalFenceHandleTypeFlagBits #

shift :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

rotate :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

zeroBits :: VkExternalFenceHandleTypeFlagBits #

bit :: Int -> VkExternalFenceHandleTypeFlagBits #

setBit :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

clearBit :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

complementBit :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

testBit :: VkExternalFenceHandleTypeFlagBits -> Int -> Bool #

bitSizeMaybe :: VkExternalFenceHandleTypeFlagBits -> Maybe Int #

bitSize :: VkExternalFenceHandleTypeFlagBits -> Int #

isSigned :: VkExternalFenceHandleTypeFlagBits -> Bool #

shiftL :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

unsafeShiftL :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

shiftR :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

unsafeShiftR :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

rotateL :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

rotateR :: VkExternalFenceHandleTypeFlagBits -> Int -> VkExternalFenceHandleTypeFlagBits #

popCount :: VkExternalFenceHandleTypeFlagBits -> Int #

FiniteBits VkExternalFenceHandleTypeFlagBits Source # 
Instance details

newtype VkExternalFenceFeatureFlagBits Source #

VkExternalFenceFeatureFlagBits - Bitfield describing features of an external fence handle type

See Also

VkExternalFenceFeatureFlags

Instances
Eq VkExternalFenceFeatureFlagBits Source # 
Instance details
Ord VkExternalFenceFeatureFlagBits Source # 
Instance details
Read VkExternalFenceFeatureFlagBits Source # 
Instance details
Show VkExternalFenceFeatureFlagBits Source # 
Instance details
Storable VkExternalFenceFeatureFlagBits Source # 
Instance details
Bits VkExternalFenceFeatureFlagBits Source # 
Instance details

Methods

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

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

xor :: VkExternalFenceFeatureFlagBits -> VkExternalFenceFeatureFlagBits -> VkExternalFenceFeatureFlagBits #

complement :: VkExternalFenceFeatureFlagBits -> VkExternalFenceFeatureFlagBits #

shift :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

rotate :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

zeroBits :: VkExternalFenceFeatureFlagBits #

bit :: Int -> VkExternalFenceFeatureFlagBits #

setBit :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

clearBit :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

complementBit :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

testBit :: VkExternalFenceFeatureFlagBits -> Int -> Bool #

bitSizeMaybe :: VkExternalFenceFeatureFlagBits -> Maybe Int #

bitSize :: VkExternalFenceFeatureFlagBits -> Int #

isSigned :: VkExternalFenceFeatureFlagBits -> Bool #

shiftL :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

unsafeShiftL :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

shiftR :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

unsafeShiftR :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

rotateL :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

rotateR :: VkExternalFenceFeatureFlagBits -> Int -> VkExternalFenceFeatureFlagBits #

popCount :: VkExternalFenceFeatureFlagBits -> Int #

FiniteBits VkExternalFenceFeatureFlagBits Source # 
Instance details

pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT :: VkExternalFenceFeatureFlagBits Source #

VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT specifies handles of this type can be exported from Vulkan fence objects.

pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT :: VkExternalFenceFeatureFlagBits Source #

VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT specifies handles of this type can be imported to Vulkan fence objects.

vkGetPhysicalDeviceExternalFenceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO () Source #

vkGetPhysicalDeviceExternalFenceProperties - Function for querying external fence handle capabilities.

Parameters

  • physicalDevice is the physical device from which to query the fence capabilities.

Valid Usage (Implicit)

  • physicalDevice must be a valid VkPhysicalDevice handle
  • pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure
  • pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure

See Also

VkExternalFenceProperties, VkPhysicalDevice, VkPhysicalDeviceExternalFenceInfo

data VkPhysicalDeviceExternalFenceInfo Source #

VkPhysicalDeviceExternalFenceInfo - Structure specifying fence creation parameters.

Description

Note

Handles of type VK_EXTERNAL_FENCE_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.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO

See Also

VkExternalFenceHandleTypeFlagBits, VkStructureType, vkGetPhysicalDeviceExternalFenceProperties, vkGetPhysicalDeviceExternalFencePropertiesKHR

Constructors

VkPhysicalDeviceExternalFenceInfo 

Fields

data VkExternalFenceProperties Source #

VkExternalFenceProperties - Structure describing supported external fence handle features

Description

If handleType is not supported by the implementation, then VkExternalFenceProperties::externalFenceFeatures will be set to zero.

Valid Usage (Implicit)

  • sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
  • pNext must be NULL

See Also

VkExternalFenceFeatureFlags, VkExternalFenceHandleTypeFlags, VkStructureType, vkGetPhysicalDeviceExternalFenceProperties, vkGetPhysicalDeviceExternalFencePropertiesKHR

Constructors

VkExternalFenceProperties 

Fields

type VkExternalFenceHandleTypeFlags = VkExternalFenceHandleTypeFlagBits Source #

VkExternalFenceHandleTypeFlags - Bitmask of VkExternalFenceHandleTypeFlagBits

Description

VkExternalFenceHandleTypeFlags is a bitmask type for setting a mask of zero or more VkExternalFenceHandleTypeFlagBits.

See Also

VkExportFenceCreateInfo, VkExternalFenceHandleTypeFlagBits, VkExternalFenceProperties

type VkExternalFenceFeatureFlags = VkExternalFenceFeatureFlagBits Source #

VkExternalFenceFeatureFlags - Bitmask of VkExternalFenceFeatureFlagBits

Description

VkExternalFenceFeatureFlags is a bitmask type for setting a mask of zero or more VkExternalFenceFeatureFlagBits.

See Also

VkExternalFenceFeatureFlagBits, VkExternalFenceProperties