vulkan-3.0.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Synopsis

Documentation

getMemoryWin32HandleKHR :: 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 a MemoryGetWin32HandleInfoKHR 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

Success
Failure

See Also

Device, MemoryGetWin32HandleInfoKHR

getMemoryWin32HandlePropertiesKHR :: Device -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> IO MemoryWin32HandlePropertiesKHR Source #

vkGetMemoryWin32HandlePropertiesKHR - Get Properties of External Memory Win32 Handles

Parameters

  • Device is the logical device that will be importing handle.
  • handleType is the type of the handle handle.
  • handle is the handle which will be imported.
  • pMemoryWin32HandleProperties will return properties of handle.

Return Codes

Success
Failure

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

Valid Usage (Implicit)

See Also

ExternalMemoryHandleTypeFlagBits, StructureType

Constructors

ImportMemoryWin32HandleInfoKHR 

Fields

Instances
Show ImportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Storable ImportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

FromCStruct ImportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

ToCStruct ImportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Zero ImportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

data ExportMemoryWin32HandleInfoKHR Source #

VkExportMemoryWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a memory

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 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
1
https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights

Valid Usage

Valid Usage (Implicit)

  • If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value

See Also

StructureType

Constructors

ExportMemoryWin32HandleInfoKHR 

Fields

Instances
Show ExportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Storable ExportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

FromCStruct ExportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

ToCStruct ExportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Zero ExportMemoryWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

data MemoryWin32HandlePropertiesKHR Source #

VkMemoryWin32HandlePropertiesKHR - Properties of External Memory Windows Handles

Valid Usage (Implicit)

See Also

StructureType, getMemoryWin32HandlePropertiesKHR

Constructors

MemoryWin32HandlePropertiesKHR 

Fields

  • memoryTypeBits :: Word32

    memoryTypeBits is a bitmask containing one bit set for every memory type which the specified windows handle can be imported as.

Instances
Show MemoryWin32HandlePropertiesKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Storable MemoryWin32HandlePropertiesKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

FromCStruct MemoryWin32HandlePropertiesKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

ToCStruct MemoryWin32HandlePropertiesKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Zero MemoryWin32HandlePropertiesKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

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

  • If handleType is defined as an NT handle, getMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType.
  • handleType must be defined as an NT handle or a global share handle.

Valid Usage (Implicit)

See Also

DeviceMemory, ExternalMemoryHandleTypeFlagBits, StructureType, getMemoryWin32HandleKHR

Constructors

MemoryGetWin32HandleInfoKHR 

Fields

Instances
Show MemoryGetWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Storable MemoryGetWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

FromCStruct MemoryGetWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

ToCStruct MemoryGetWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

Zero MemoryGetWin32HandleInfoKHR Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32

type KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME = "VK_KHR_external_memory_win32" Source #

type HANDLE = Ptr () Source #