vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_external_memory_metal

Description

Name

VK_EXT_external_memory_metal - device extension

VK_EXT_external_memory_metal

Name String
VK_EXT_external_memory_metal
Extension Type
Device extension
Registered Extension Number
603
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_external_memory or Vulkan Version 1.1
Contact
Extension Proposal
VK_EXT_external_memory_metal

Other Extension Metadata

Last Modified Date
2024-07-18
IP Status
No known IP claims.
Contributors
  • Aitor Camacho Larrondo, LunarG Inc.

Description

An application may wish to reference device memory in multiple Vulkan device instances, in multiple processes, and/or in Metal API. This extension enables an application to export and import Metal handles from Vulkan memory objects such that the underlying resources can be referenced outside the scope of the Vulkan device instance that created them.

New Commands

New Structures

New Enum Constants

Version History

  • Revision 1, 2024-07-18 (Aitor Camacho Larrondo)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

getMemoryMetalHandleEXT Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that created the device memory being exported.

device must be a valid Device handle

-> MemoryGetMetalHandleInfoEXT

pGetMetalHandleInfo is a pointer to a MemoryGetMetalHandleInfoEXT structure containing parameters of the export operation.

pGetMetalHandleInfo must be a valid pointer to a valid MemoryGetMetalHandleInfoEXT structure

-> io ("handle" ::: Ptr ()) 

vkGetMemoryMetalHandleEXT - Get a Metal handle for a memory object

Description

Unless the app retains the handle object returned by the call, the lifespan will be the same as the associated DeviceMemory.

Return Codes

Success
Failure

See Also

VK_EXT_external_memory_metal, Device, MemoryGetMetalHandleInfoEXT

getMemoryMetalHandlePropertiesEXT Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that will be importing pHandle.

device must be a valid Device handle

-> ExternalMemoryHandleTypeFlagBits

handleType is a ExternalMemoryHandleTypeFlagBits value specifying the type of the handle pHandle.

handleType must be EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT, EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT or EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT

handleType must be a valid ExternalMemoryHandleTypeFlagBits value

-> ("handle" ::: Ptr ())

pHandle is the handle which will be imported.

pHandle must point to a valid id<MTLBuffer>, id<MTLTexture> or id<MTLDevice>

pHandle must be a pointer value

-> io MemoryMetalHandlePropertiesEXT 

data ImportMemoryMetalHandleInfoEXT Source #

VkImportMemoryMetalHandleInfoEXT - Import Metal memory created on the same physical device

Description

Importing memory object payloads from Metal handles shares the ownership of the handle to the Vulkan implementation.

Applications can import the same payload 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

VK_EXT_external_memory_metal, ExternalMemoryHandleTypeFlagBits, StructureType

Constructors

ImportMemoryMetalHandleInfoEXT 

Fields

Instances

Instances details
Storable ImportMemoryMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Show ImportMemoryMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

FromCStruct ImportMemoryMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

ToCStruct ImportMemoryMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Zero ImportMemoryMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

data MemoryMetalHandlePropertiesEXT Source #

VkMemoryMetalHandlePropertiesEXT - Properties of External Memory Metal Handles

Valid Usage (Implicit)

See Also

VK_EXT_external_memory_metal, StructureType, getMemoryMetalHandlePropertiesEXT

Constructors

MemoryMetalHandlePropertiesEXT 

Fields

  • memoryTypeBits :: Word32

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

Instances

Instances details
Eq MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Storable MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Show MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

FromCStruct MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

ToCStruct MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Zero MemoryMetalHandlePropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

data MemoryGetMetalHandleInfoEXT Source #

VkMemoryGetMetalHandleInfoEXT - Structure describing a Metal handle memory 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 (Implicit)

See Also

VK_EXT_external_memory_metal, DeviceMemory, ExternalMemoryHandleTypeFlagBits, StructureType, getMemoryMetalHandleEXT

Constructors

MemoryGetMetalHandleInfoEXT 

Fields

Instances

Instances details
Eq MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Storable MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Show MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

FromCStruct MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

ToCStruct MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

Zero MemoryGetMetalHandleInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_external_memory_metal

type EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME = "VK_EXT_external_memory_metal" Source #