| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSIONExtending
ExternalMemoryHandleTypeFlagBits:Extending
StructureType:
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
- getMemoryMetalHandleEXT :: MonadIO io => Device -> MemoryGetMetalHandleInfoEXT -> io ("handle" ::: Ptr ())
- getMemoryMetalHandlePropertiesEXT :: MonadIO io => Device -> ExternalMemoryHandleTypeFlagBits -> ("handle" ::: Ptr ()) -> io MemoryMetalHandlePropertiesEXT
- data ImportMemoryMetalHandleInfoEXT = ImportMemoryMetalHandleInfoEXT {}
- data MemoryMetalHandlePropertiesEXT = MemoryMetalHandlePropertiesEXT {}
- data MemoryGetMetalHandleInfoEXT = MemoryGetMetalHandleInfoEXT {}
- type EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION = 1
- pattern EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION :: Integral a => a
- type EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME = "VK_EXT_external_memory_metal"
- pattern EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME :: (Eq a, IsString a) => a
Documentation
getMemoryMetalHandleEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> MemoryGetMetalHandleInfoEXT |
|
| -> 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
See Also
VK_EXT_external_memory_metal,
Device, MemoryGetMetalHandleInfoEXT
getMemoryMetalHandlePropertiesEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ExternalMemoryHandleTypeFlagBits |
|
| -> ("handle" ::: Ptr ()) |
|
| -> io MemoryMetalHandlePropertiesEXT |
vkGetMemoryMetalHandlePropertiesEXT - Get Properties of External Memory Metal Handles
Return Codes
See Also
VK_EXT_external_memory_metal,
Device,
ExternalMemoryHandleTypeFlagBits,
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
- If
handleTypeis not0, it must be supported for import, as reported byExternalImageFormatPropertiesorExternalBufferProperties
- The memory from
which
handlewas exported must have been created on the same underlying physical device asdevice - If
handleTypeis not0, it must beEXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT,EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXTorEXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT - If
handleTypeis not0,handlemust be a valid non-NULL handle of the type specified byhandleType -
handlemust obey any requirements listed forhandleTypein external memory handle types compatibility
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT
- If
handleTypeis not0,handleTypemust be a validExternalMemoryHandleTypeFlagBitsvalue
See Also
VK_EXT_external_memory_metal,
ExternalMemoryHandleTypeFlagBits,
StructureType
Constructors
| ImportMemoryMetalHandleInfoEXT | |
Fields
| |
Instances
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
| |
Instances
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
pattern EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION :: Integral a => a Source #
type EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME = "VK_EXT_external_memory_metal" Source #
pattern EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME :: (Eq a, IsString a) => a Source #