Structures

VkExportMetalObjectsInfoEXT

Structure whose pNext chain identifies Vulkan objects and corresponding Metal objects

The VkExportMetalObjectsInfoEXT structure is defined as:

typedef struct VkExportMetalObjectsInfoEXT {
    VkStructureType sType;
    const void* pNext;
} VkExportMetalObjectsInfoEXT;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.

Valid Usage

VUID-VkExportMetalObjectsInfoEXT-pNext-06791

If the pNext chain includes a VkExportMetalDeviceInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command

VUID-VkExportMetalObjectsInfoEXT-pNext-06792

If the pNext chain includes a VkExportMetalCommandQueueInfoEXT structure, the VkInstancemust have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command

VUID-VkExportMetalObjectsInfoEXT-pNext-06793

If the pNext chain includes a VkExportMetalBufferInfoEXT structure, the VkDeviceMemory in its memory member must have been allocated with VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkMemoryAllocateInfo structure in the vkAllocateMemory command

VUID-VkExportMetalObjectsInfoEXT-pNext-06794

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, exactly one of its image, imageView, or bufferView members must not be VK_NULL_HANDLE

VUID-VkExportMetalObjectsInfoEXT-pNext-06795

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its image member is not VK_NULL_HANDLE, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command

VUID-VkExportMetalObjectsInfoEXT-pNext-06796

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its imageView member is not VK_NULL_HANDLE, the VkImageView in its imageView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageViewCreateInfo structure in the vkCreateImageView command

VUID-VkExportMetalObjectsInfoEXT-pNext-06797

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its bufferView member is not VK_NULL_HANDLE, the VkBufferView in its bufferView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkBufferViewCreateInfo structure in the vkCreateBufferView command

VUID-VkExportMetalObjectsInfoEXT-pNext-06798

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if either its image or imageView member is not VK_NULL_HANDLE, then plane must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT

VUID-VkExportMetalObjectsInfoEXT-pNext-06799

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT

VUID-VkExportMetalObjectsInfoEXT-pNext-06800

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT

VUID-VkExportMetalObjectsInfoEXT-pNext-06801

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT

VUID-VkExportMetalObjectsInfoEXT-pNext-06802

If the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT

VUID-VkExportMetalObjectsInfoEXT-pNext-06803

If the pNext chain includes a VkExportMetalIOSurfaceInfoEXT structure, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command

VUID-VkExportMetalObjectsInfoEXT-pNext-06804

If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, exactly one of its semaphore or event members must not be VK_NULL_HANDLE

VUID-VkExportMetalObjectsInfoEXT-pNext-06805

If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its semaphore member is not VK_NULL_HANDLE, the VkSemaphore in its semaphore member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkSemaphoreCreateInfo structure in the vkCreateSemaphore command

VUID-VkExportMetalObjectsInfoEXT-pNext-06806

If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its event member is not VK_NULL_HANDLE, the VkEvent in its event member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkEventCreateInfo structure in the vkCreateEvent command

Valid Usage (Implicit)

VUID-VkExportMetalObjectsInfoEXT-sType-sType

sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT

VUID-VkExportMetalObjectsInfoEXT-pNext-pNext

Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalDeviceInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT