| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32
Synopsis
- pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR :: VkStructureType
- pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR :: VkStructureType
- pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR :: VkStructureType
- pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR :: VkStructureType
- pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION :: Integral a => a
- pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME :: (Eq a, IsString a) => a
- vkGetSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pGetWin32HandleInfo" ::: Ptr VkSemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult
- vkImportSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr VkImportSemaphoreWin32HandleInfoKHR) -> IO VkResult
- data VkImportSemaphoreWin32HandleInfoKHR = VkImportSemaphoreWin32HandleInfoKHR {}
- data VkExportSemaphoreWin32HandleInfoKHR = VkExportSemaphoreWin32HandleInfoKHR {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkPAttributes :: Ptr SECURITY_ATTRIBUTES
- vkDwAccess :: DWORD
- vkName :: LPCWSTR
- data VkD3D12FenceSubmitInfoKHR = VkD3D12FenceSubmitInfoKHR {}
- data VkSemaphoreGetWin32HandleInfoKHR = VkSemaphoreGetWin32HandleInfoKHR {}
Documentation
pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION :: Integral a => a Source #
pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
vkGetSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pGetWin32HandleInfo" ::: Ptr VkSemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult Source #
vkGetSemaphoreWin32HandleKHR - Get a Windows HANDLE for a semaphore
Parameters
deviceis the logical device that created the semaphore being exported.
pGetWin32HandleInfois a pointer to an instance of theVkSemaphoreGetWin32HandleInfoKHRstructure containing parameters of the export operation.pHandlewill return the Windows handle representing the semaphore state.
Description
For handle types defined as NT handles, the handles returned by
vkGetSemaphoreWin32HandleKHR are owned by the application. To avoid
leaking resources, the application must release ownership of them
using the CloseHandle system call when they are no longer needed.
Exporting a Windows handle from a semaphore may have side effects depending on the transference of the specified handle type, as described in Importing Semaphore Payloads.
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
pGetWin32HandleInfomust be a valid pointer to a validVkSemaphoreGetWin32HandleInfoKHRstructurepHandlemust be a valid pointer to aHANDLEvalue
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_TOO_MANY_OBJECTS
VK_ERROR_OUT_OF_HOST_MEMORY
See Also
vkImportSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr VkImportSemaphoreWin32HandleInfoKHR) -> IO VkResult Source #
vkImportSemaphoreWin32HandleKHR - Import a semaphore from a Windows HANDLE
Parameters
deviceis the logical device that created the semaphore.
pImportSemaphoreWin32HandleInfopoints to aVkImportSemaphoreWin32HandleInfoKHRstructure specifying the semaphore and import parameters.
Description
Importing a semaphore payload from Windows handles does not transfer
ownership of the handle to the Vulkan implementation. For handle types
defined as NT handles, the application must release ownership using
the CloseHandle system call when the handle is no longer needed.
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 (Implicit)
devicemust be a validVkDevicehandle
pImportSemaphoreWin32HandleInfomust be a valid pointer to a validVkImportSemaphoreWin32HandleInfoKHRstructure
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_INVALID_EXTERNAL_HANDLE
See Also
data VkImportSemaphoreWin32HandleInfoKHR Source #
VkImportSemaphoreWin32HandleInfoKHR - Structure specifying Windows handle to import to a semaphore
Description
The handle types supported by handleType are:
| Handle Type | Transference | Permanence Supported |
|---|---|---|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT | Reference | Temporary,Permanent |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT | Reference | Temporary,Permanent |
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT | Reference | Temporary,Permanent |
Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR
Valid Usage
handleTypemust be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table.
- If
handleTypeis notVK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BITorVK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,namemust beNULL. - If
handleTypeis not0andhandleisNULL,namemust name a valid synchronization primitive of the type specified byhandleType. - If
handleTypeis not0andnameisNULL,handlemust be a valid handle of the type specified byhandleType. - If
handleis notNULL,namemust beNULL. - If
handleis notNULL, it must obey any requirements listed forhandleTypein external semaphore handle types compatibility. - If
nameis notNULL, it must obey any requirements listed forhandleTypein external semaphore handle types compatibility.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
pNextmust beNULLsemaphoremust be a validVkSemaphorehandleflagsmust be a valid combination ofVkSemaphoreImportFlagBitsvalues- If
handleTypeis not0,handleTypemust be a validVkExternalSemaphoreHandleTypeFlagBitsvalue
Host Synchronization
- Host access to
semaphoremust be externally synchronized
See Also
VkExternalSemaphoreHandleTypeFlagBits,
VkSemaphore,
VkSemaphoreImportFlags,
VkStructureType,
vkImportSemaphoreWin32HandleKHR
Constructors
| VkImportSemaphoreWin32HandleInfoKHR | |
Fields
| |
Instances
data VkExportSemaphoreWin32HandleInfoKHR Source #
VkExportSemaphoreWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a semaphore
Description
If this structure is not present, or if pAttributes is set to NULL,
default security descriptor values will be used, and child processes
created by the application will not inherit the handle, as described in
the MSDN documentation for “Synchronization Object Security and Access
Rights”1. Further, if the structure is not present, the access rights
will be
DXGI_SHARED_RESOURCE_READ | DXGI_SHARED_RESOURCE_WRITE
for handles of the following types:
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
And
GENERIC_ALL
for handles of the following types:
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
Valid Usage
- If
VkExportSemaphoreCreateInfo::handleTypesdoes not includeVK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BITorVK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,VkExportSemaphoreWin32HandleInfoKHRmust not be in thepNextchain ofVkSemaphoreCreateInfo.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
- If
pAttributesis notNULL,pAttributesmust be a valid pointer to a validSECURITY_ATTRIBUTESvalue
See Also
Constructors
| VkExportSemaphoreWin32HandleInfoKHR | |
Fields
| |
Instances
data VkD3D12FenceSubmitInfoKHR Source #
VkD3D12FenceSubmitInfoKHR - Structure specifying values for Direct3D 12 fence-backed semaphores
Description
If the semaphore in
VkSubmitInfo::pWaitSemaphores or
VkSubmitInfo::pSignalSemaphores
corresponding to an entry in pWaitSemaphoreValues or
pSignalSemaphoreValues respectively does not currently have a
payload
referring to a Direct3D 12 fence, the implementation must ignore the
value in the pWaitSemaphoreValues or pSignalSemaphoreValues entry.
Valid Usage
waitSemaphoreValuesCountmust be the same value asVkSubmitInfo::waitSemaphoreCount, whereVkSubmitInfois in thepNextchain of thisVkD3D12FenceSubmitInfoKHRstructure.
signalSemaphoreValuesCountmust be the same value asVkSubmitInfo::signalSemaphoreCount, whereVkSubmitInfois in thepNextchain of thisVkD3D12FenceSubmitInfoKHRstructure.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
- If
waitSemaphoreValuesCountis not0, andpWaitSemaphoreValuesis notNULL,pWaitSemaphoreValuesmust be a valid pointer to an array ofwaitSemaphoreValuesCountuint64_tvalues - If
signalSemaphoreValuesCountis not0, andpSignalSemaphoreValuesis notNULL,pSignalSemaphoreValuesmust be a valid pointer to an array ofsignalSemaphoreValuesCountuint64_tvalues
See Also
Constructors
| VkD3D12FenceSubmitInfoKHR | |
Fields
| |
Instances
| Eq VkD3D12FenceSubmitInfoKHR Source # | |
Methods (==) :: VkD3D12FenceSubmitInfoKHR -> VkD3D12FenceSubmitInfoKHR -> Bool # (/=) :: VkD3D12FenceSubmitInfoKHR -> VkD3D12FenceSubmitInfoKHR -> Bool # | |
| Show VkD3D12FenceSubmitInfoKHR Source # | |
Methods showsPrec :: Int -> VkD3D12FenceSubmitInfoKHR -> ShowS # show :: VkD3D12FenceSubmitInfoKHR -> String # showList :: [VkD3D12FenceSubmitInfoKHR] -> ShowS # | |
| Storable VkD3D12FenceSubmitInfoKHR Source # | |
Methods sizeOf :: VkD3D12FenceSubmitInfoKHR -> Int # alignment :: VkD3D12FenceSubmitInfoKHR -> Int # peekElemOff :: Ptr VkD3D12FenceSubmitInfoKHR -> Int -> IO VkD3D12FenceSubmitInfoKHR # pokeElemOff :: Ptr VkD3D12FenceSubmitInfoKHR -> Int -> VkD3D12FenceSubmitInfoKHR -> IO () # peekByteOff :: Ptr b -> Int -> IO VkD3D12FenceSubmitInfoKHR # pokeByteOff :: Ptr b -> Int -> VkD3D12FenceSubmitInfoKHR -> IO () # peek :: Ptr VkD3D12FenceSubmitInfoKHR -> IO VkD3D12FenceSubmitInfoKHR # poke :: Ptr VkD3D12FenceSubmitInfoKHR -> VkD3D12FenceSubmitInfoKHR -> IO () # | |
data VkSemaphoreGetWin32HandleInfoKHR Source #
VkSemaphoreGetWin32HandleInfoKHR - Structure describing a Win32 handle semaphore export operation
Description
The properties of the handle returned depend on the value of
handleType. See
VkExternalSemaphoreHandleTypeFlagBits
for a description of the properties of the defined external semaphore
handle types.
Valid Usage
handleTypemust have been included inVkExportSemaphoreCreateInfo::handleTypeswhen thesemaphore’s current payload was created.
- If
handleTypeis defined as an NT handle,vkGetSemaphoreWin32HandleKHRmust be called no more than once for each valid unique combination ofsemaphoreandhandleType. semaphoremust 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::exportFromImportedHandleTypesforhandleType.- If
handleTyperefers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting onsemaphore. - If
handleTyperefers to a handle type with copy payload transference semantics,semaphoremust be signaled, or have an associated semaphore signal operation pending execution. handleTypemust be defined as an NT handle or a global share handle.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
pNextmust beNULLsemaphoremust be a validVkSemaphorehandlehandleTypemust be a validVkExternalSemaphoreHandleTypeFlagBitsvalue
See Also
VkExternalSemaphoreHandleTypeFlagBits,
VkSemaphore,
VkStructureType,
vkGetSemaphoreWin32HandleKHR
Constructors
| VkSemaphoreGetWin32HandleInfoKHR | |
Fields
| |