Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- getMemoryWin32HandleKHR :: forall io. MonadIO io => Device -> MemoryGetWin32HandleInfoKHR -> io HANDLE
- getMemoryWin32HandlePropertiesKHR :: forall io. MonadIO io => Device -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> io MemoryWin32HandlePropertiesKHR
- data ImportMemoryWin32HandleInfoKHR = ImportMemoryWin32HandleInfoKHR {}
- data ExportMemoryWin32HandleInfoKHR = ExportMemoryWin32HandleInfoKHR {}
- data MemoryWin32HandlePropertiesKHR = MemoryWin32HandlePropertiesKHR {}
- data MemoryGetWin32HandleInfoKHR = MemoryGetWin32HandleInfoKHR {}
- type KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION = 1
- pattern KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION :: forall a. Integral a => a
- type KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME = "VK_KHR_external_memory_win32"
- pattern KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- type HANDLE = Ptr ()
- type DWORD = Word32
- type LPCWSTR = Ptr CWchar
- data SECURITY_ATTRIBUTES
Documentation
getMemoryWin32HandleKHR :: forall io. MonadIO io => Device -> MemoryGetWin32HandleInfoKHR -> io HANDLE Source #
vkGetMemoryWin32HandleKHR - Get a Windows HANDLE for a memory object
Parameters
device
is the logical device that created the device memory being exported.
pGetWin32HandleInfo
is a pointer to aMemoryGetWin32HandleInfoKHR
structure containing parameters of the export operation.pHandle
will return the Windows handle representing the underlying resources of the device memory object.
Description
For handle types defined as NT handles, the handles returned by
getMemoryWin32HandleKHR
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.
Return Codes
See Also
getMemoryWin32HandlePropertiesKHR :: forall io. MonadIO io => Device -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> io MemoryWin32HandlePropertiesKHR Source #
vkGetMemoryWin32HandlePropertiesKHR - Get Properties of External Memory Win32 Handles
Parameters
device
is the logical device that will be importinghandle
.
handleType
is the type of the handlehandle
.handle
is the handle which will be imported.pMemoryWin32HandleProperties
will return properties ofhandle
.
Return Codes
See Also
Device
,
ExternalMemoryHandleTypeFlagBits
,
MemoryWin32HandlePropertiesKHR
data ImportMemoryWin32HandleInfoKHR Source #
VkImportMemoryWin32HandleInfoKHR - import Win32 memory created on the same physical device
Description
Importing memory objects 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 underlying memory into multiple
instances of Vulkan, into the same instance from which it was exported,
and multiple times into a given Vulkan instance. In all cases, each
import operation must create a distinct
DeviceMemory
object.
Valid Usage
- If
handleType
is not0
, it must be supported for import, as reported byExternalImageFormatProperties
orExternalBufferProperties
- The memory from which
handle
was exported, or the memory named byname
must have been created on the same underlying physical device asdevice
- If
handleType
is not0
, it must be defined as an NT handle or a global share handle - If
handleType
is notEXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
,EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
,EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
, orEXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
,name
must beNULL
- If
handleType
is not0
andhandle
isNULL
,name
must name a valid memory resource of the type specified byhandleType
- If
handleType
is not0
andname
isNULL
,handle
must be a valid handle of the type specified byhandleType
- if
handle
is notNULL
,name
must beNULL
- If
handle
is notNULL
, it must obey any requirements listed forhandleType
in external memory handle types compatibility - If
name
is notNULL
, it must obey any requirements listed forhandleType
in external memory handle types compatibility
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
- If
handleType
is not0
,handleType
must be a validExternalMemoryHandleTypeFlagBits
value
See Also
ImportMemoryWin32HandleInfoKHR | |
|
Instances
data ExportMemoryWin32HandleInfoKHR Source #
VkExportMemoryWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a memory
Description
If
ExportMemoryAllocateInfo
is not present in the same pNext
chain, this structure is ignored.
If
ExportMemoryAllocateInfo
is present in the pNext
chain of
MemoryAllocateInfo
with a Windows handleType
,
but either ExportMemoryWin32HandleInfoKHR
is not present in the
pNext
chain, or if it is but 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 used depend
on the handle type.
For handles of the following types:
EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
The implementation must ensure the access rights allow read and write access to the memory.
For handles of the following types:
EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
The access rights must be:
GENERIC_ALL
Valid Usage
- If
ExportMemoryAllocateInfo
::handleTypes
does not includeEXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
,EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
,EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
, orEXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
, aExportMemoryWin32HandleInfoKHR
structure must not be included in thepNext
chain ofMemoryAllocateInfo
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
- If
pAttributes
is notNULL
,pAttributes
must be a valid pointer to a validSECURITY_ATTRIBUTES
value
See Also
ExportMemoryWin32HandleInfoKHR | |
|
Instances
data MemoryWin32HandlePropertiesKHR Source #
VkMemoryWin32HandlePropertiesKHR - Properties of External Memory Windows Handles
Valid Usage (Implicit)
See Also
MemoryWin32HandlePropertiesKHR | |
|
Instances
data MemoryGetWin32HandleInfoKHR Source #
VkMemoryGetWin32HandleInfoKHR - Structure describing a Win32 handle semaphore export operation
Description
The properties of the handle returned depend on the value of
handleType
. See
ExternalMemoryHandleTypeFlagBits
for a description of the properties of the defined external memory
handle types.
Valid Usage
handleType
must have been included inExportMemoryAllocateInfo
::handleTypes
whenmemory
was created
- If
handleType
is defined as an NT handle,getMemoryWin32HandleKHR
must be called no more than once for each valid unique combination ofmemory
andhandleType
handleType
must be defined as an NT handle or a global share handle
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
pNext
must beNULL
memory
must be a validDeviceMemory
handlehandleType
must be a validExternalMemoryHandleTypeFlagBits
value
See Also
DeviceMemory
,
ExternalMemoryHandleTypeFlagBits
,
StructureType
,
getMemoryWin32HandleKHR
MemoryGetWin32HandleInfoKHR | |
|
Instances
pattern KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME = "VK_KHR_external_memory_win32" Source #
pattern KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
data SECURITY_ATTRIBUTES Source #