VK_EXT_metal_objects
Other Extension Metadata
Last Modified Date
2024-04-04
IP Status
No known IP claims.
Contributors
- Bill Hollings, The Brenwill Workshop Ltd.
- Dzmitry Malyshau, Mozilla Corp.
Description
In a Vulkan implementation that is layered on top of Metal on Apple device platforms, this extension provides the ability to import and export the underlying Metal objects associated with specific Vulkan objects.
As detailed in the extension proposal document, this extension adds one new Vulkan command, vkExportMetalObjectsEXT, to export underlying Metal objects from Vulkan objects, and supports importing the appropriate existing Metal objects when creating Vulkan objects of types VkDeviceMemory, VkImage, VkSemaphore, and VkEvent,
The intent is that this extension will be advertised and supported only on implementations that are layered on top of Metal on Apple device platforms.
New Base Types
New Commands
New Structures
- VkExportMetalObjectsInfoEXT
- Extending VkExportMetalObjectsInfoEXT:
- Extending VkImageCreateInfo:
- Extending VkInstanceCreateInfo, VkMemoryAllocateInfo, VkImageCreateInfo, VkImageViewCreateInfo, VkBufferViewCreateInfo, VkSemaphoreCreateInfo, VkEventCreateInfo:
- Extending VkMemoryAllocateInfo:
- Extending VkSemaphoreCreateInfo, VkEventCreateInfo:
New Enums
New Bitmasks
New Enum Constants
VK_EXT_METAL_OBJECTS_EXTENSION_NAME
VK_EXT_METAL_OBJECTS_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
Issues
None.
Version History
- Revision 1, 2022-05-28 (Bill Hollings)
- Initial draft.
- Incorporated feedback from review by the Vulkan Working Group. Renamed many structures, moved import/export of MTLBuffer to VkDeviceMemory, added export of MTLSharedEvent, added import of MTLSharedEvent for VkSemaphore and VkEvent, and changed used bit mask fields to individual bit fields to simplify Valid Usage rules.
- Revision 2, 2024-04-04 (Bill Hollings)
- Add an
__unsafe_unretained
ownership qualifier to all Metal object declarations, to support Automatic Reference Counting (ARC) on Apple devices.
- Add an