VkImportMemoryMetalHandleInfoEXT
To import memory from a Metal handle, add a
VkImportMemoryMetalHandleInfoEXT structure to the pNext
chain of
the VkMemoryAllocateInfo structure.
The VkImportMemoryMetalHandleInfoEXT
structure is defined as:
typedef struct VkImportMemoryMetalHandleInfoEXT {
VkStructureType sType;
const void* pNext;
VkExternalMemoryHandleTypeFlagBits handleType;
void* handle;
} VkImportMemoryMetalHandleInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.handleType
is a VkExternalMemoryHandleTypeFlagBits value specifying the type ofhandle
orname
.handle
isNULL
or the external handle to import.
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
VkDeviceMemory
object.
Valid Usage
VUID-VkImportMemoryMetalHandleInfoEXT-handleType-10408
If handleType
is not 0
, it must be supported for import, as
reported by VkExternalImageFormatProperties or
VkExternalBufferProperties
VUID-VkImportMemoryMetalHandleInfoEXT-handle-10409
The memory from which handle
was exported must have been created
on the same underlying physical device as device
VUID-VkImportMemoryMetalHandleInfoEXT-handleType-10410
If handleType
is not 0
, it must be
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT
,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT
or
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT
VUID-VkImportMemoryMetalHandleInfoEXT-handleType-10411
If handleType
is not 0
, handle
must be a valid non-NULL
handle of the type specified by handleType
VUID-VkImportMemoryMetalHandleInfoEXT-handle-10412
handle
must obey any requirements listed for handleType
in
external memory handle
types compatibility
Valid Usage (Implicit)
VUID-VkImportMemoryMetalHandleInfoEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT
VUID-VkImportMemoryMetalHandleInfoEXT-handleType-parameter
If handleType
is not 0
, handleType
must be a valid VkExternalMemoryHandleTypeFlagBits value