Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR :: VkStructureType
- pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR :: VkStructureType
- pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION :: Integral a => a
- pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME :: (Eq a, IsString a) => a
- vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult
- vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult
- data VkImportSemaphoreFdInfoKHR = VkImportSemaphoreFdInfoKHR {}
- data VkSemaphoreGetFdInfoKHR = VkSemaphoreGetFdInfoKHR {}
Documentation
pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION :: Integral a => a Source #
pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult Source #
vkGetSemaphoreFdKHR - Get a POSIX file descriptor handle for a semaphore
Parameters
device
is the logical device that created the semaphore being exported.
pGetFdInfo
is a pointer to an instance of theVkSemaphoreGetFdInfoKHR
structure containing parameters of the export operation.pFd
will return the file descriptor representing the semaphore payload.
Description
Each call to vkGetSemaphoreFdKHR
must create a new file descriptor
and transfer ownership of it to the application. To avoid leaking
resources, the application must release ownership of the file
descriptor when it is no longer needed.
Note
Ownership can be released in many ways. For example, the application can
call close
() on the file descriptor, or transfer ownership back to
Vulkan by using the file descriptor to import a semaphore payload.
Where supported by the operating system, the implementation must set
the file descriptor to be closed automatically when an execve
system
call is made.
Exporting a file descriptor from a semaphore may have side effects depending on the transference of the specified handle type, as described in Importing Semaphore State.
Valid Usage (Implicit)
device
must be a validVkDevice
handle
pGetFdInfo
must be a valid pointer to a validVkSemaphoreGetFdInfoKHR
structurepFd
must be a valid pointer to aint
value
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_TOO_MANY_OBJECTS
VK_ERROR_OUT_OF_HOST_MEMORY
See Also
vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult Source #
vkImportSemaphoreFdKHR - Import a semaphore from a POSIX file descriptor
Parameters
device
is the logical device that created the semaphore.
pImportSemaphoreFdInfo
points to aVkImportSemaphoreFdInfoKHR
structure specifying the semaphore and import parameters.
Description
Importing a semaphore payload from a file descriptor transfers ownership of the file descriptor from the application to the Vulkan implementation. The application must not perform any operations on the file descriptor after a successful import.
Applications can import the same semaphore payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance.
Valid Usage
semaphore
must not be associated with any queue command that has not yet completed execution on that queue
Valid Usage (Implicit)
device
must be a validVkDevice
handle
pImportSemaphoreFdInfo
must be a valid pointer to a validVkImportSemaphoreFdInfoKHR
structure
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_INVALID_EXTERNAL_HANDLE
See Also
data VkImportSemaphoreFdInfoKHR Source #
VkImportSemaphoreFdInfoKHR - Structure specifying POSIX file descriptor to import to a semaphore
Description
The handle types supported by handleType
are:
Handle Type | Transference | Permanence Supported |
---|---|---|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT | Reference | Temporary,Permanent |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT | Copy | Temporary |
Handle Types Supported by VkImportSemaphoreFdInfoKHR
Valid Usage
handleType
must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table.
fd
must obey any requirements listed forhandleType
in external semaphore handle types compatibility.
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
pNext
must beNULL
semaphore
must be a validVkSemaphore
handleflags
must be a valid combination ofVkSemaphoreImportFlagBits
valueshandleType
must be a validVkExternalSemaphoreHandleTypeFlagBits
value
Host Synchronization
- Host access to
semaphore
must be externally synchronized
See Also
VkExternalSemaphoreHandleTypeFlagBits
,
VkSemaphore
,
VkSemaphoreImportFlags
,
VkStructureType
, vkImportSemaphoreFdKHR
VkImportSemaphoreFdInfoKHR | |
|
Instances
data VkSemaphoreGetFdInfoKHR Source #
VkSemaphoreGetFdInfoKHR - Structure describing a POSIX FD semaphore export operation
Description
The properties of the file descriptor returned depend on the value of
handleType
. See
VkExternalSemaphoreHandleTypeFlagBits
for a description of the properties of the defined external semaphore
handle types.
Valid Usage
handleType
must have been included inVkExportSemaphoreCreateInfo
::handleTypes
whensemaphore
’s current payload was created.
semaphore
must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included inVkExternalSemaphoreProperties
::exportFromImportedHandleTypes
forhandleType
.- If
handleType
refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting onsemaphore
. - If
handleType
refers to a handle type with copy payload transference semantics,semaphore
must be signaled, or have an associated semaphore signal operation pending execution. handleType
must be defined as a POSIX file descriptor handle.
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
pNext
must beNULL
semaphore
must be a validVkSemaphore
handlehandleType
must be a validVkExternalSemaphoreHandleTypeFlagBits
value
See Also
VkExternalSemaphoreHandleTypeFlagBits
,
VkSemaphore
,
VkStructureType
, vkGetSemaphoreFdKHR
VkSemaphoreGetFdInfoKHR | |
|
Instances
Eq VkSemaphoreGetFdInfoKHR Source # | |
Show VkSemaphoreGetFdInfoKHR Source # | |
showsPrec :: Int -> VkSemaphoreGetFdInfoKHR -> ShowS # show :: VkSemaphoreGetFdInfoKHR -> String # showList :: [VkSemaphoreGetFdInfoKHR] -> ShowS # | |
Storable VkSemaphoreGetFdInfoKHR Source # | |
sizeOf :: VkSemaphoreGetFdInfoKHR -> Int # alignment :: VkSemaphoreGetFdInfoKHR -> Int # peekElemOff :: Ptr VkSemaphoreGetFdInfoKHR -> Int -> IO VkSemaphoreGetFdInfoKHR # pokeElemOff :: Ptr VkSemaphoreGetFdInfoKHR -> Int -> VkSemaphoreGetFdInfoKHR -> IO () # peekByteOff :: Ptr b -> Int -> IO VkSemaphoreGetFdInfoKHR # pokeByteOff :: Ptr b -> Int -> VkSemaphoreGetFdInfoKHR -> IO () # peek :: Ptr VkSemaphoreGetFdInfoKHR -> IO VkSemaphoreGetFdInfoKHR # poke :: Ptr VkSemaphoreGetFdInfoKHR -> VkSemaphoreGetFdInfoKHR -> IO () # |