C Specification
The VkPhysicalDeviceHostImageCopyPropertiesEXT
structure is defined
as:
// Provided by VK_EXT_host_image_copy
typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
VkStructureType sType;
void* pNext;
uint32_t copySrcLayoutCount;
VkImageLayout* pCopySrcLayouts;
uint32_t copyDstLayoutCount;
VkImageLayout* pCopyDstLayouts;
uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
VkBool32 identicalMemoryTypeRequirements;
} VkPhysicalDeviceHostImageCopyPropertiesEXT;
Members
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
copySrcLayoutCount
is an integer related to the number of image layouts for host copies from images available or queried, as described below. -
pCopySrcLayouts
is a pointer to an array of VkImageLayout in which supported image layouts for use with host copy operations from images are returned. -
copyDstLayoutCount
is an integer related to the number of image layouts for host copies to images available or queried, as described below. -
pCopyDstLayouts
is a pointer to an array of VkImageLayout in which supported image layouts for use with host copy operations to images are returned. -
optimalTilingLayoutUUID
is an array ofVK_UUID_SIZE
uint8_t
values representing a universally unique identifier for the implementation’s swizzling layout of images created withVK_IMAGE_TILING_OPTIMAL
. -
identicalMemoryTypeRequirements
indicates that specifying theVK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
flag in VkImageCreateInfo::usage
does not affect the memory type requirements of the image.
Description
If the VkPhysicalDeviceHostImageCopyPropertiesEXT
structure is included in the pNext
chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
If pCopyDstLayouts
is NULL
, then the number of image layouts that
are supported in VkCopyMemoryToImageInfoEXT::dstImageLayout
and
VkCopyImageToImageInfoEXT::dstImageLayout
is returned in
copyDstLayoutCount
.
Otherwise, copyDstLayoutCount
must be set by the user to the number
of elements in the pCopyDstLayouts
array, and on return the variable
is overwritten with the number of values actually written to
pCopyDstLayouts
.
If the value of copyDstLayoutCount
is less than the number of image
layouts that are supported, at most copyDstLayoutCount
values will be
written to pCopyDstLayouts
.
The implementation must include the VK_IMAGE_LAYOUT_GENERAL
image
layout in pCopyDstLayouts
.
If pCopySrcLayouts
is NULL
, then the number of image layouts that
are supported in VkCopyImageToMemoryInfoEXT::srcImageLayout
and
VkCopyImageToImageInfoEXT::srcImageLayout
is returned in
copySrcLayoutCount
.
Otherwise, copySrcLayoutCount
must be set by the user to the number
of elements in the pCopySrcLayouts
array, and on return the variable
is overwritten with the number of values actually written to
pCopySrcLayouts
.
If the value of copySrcLayoutCount
is less than the number of image
layouts that are supported, at most copySrcLayoutCount
values will be
written to pCopySrcLayouts
.
The implementation must include the VK_IMAGE_LAYOUT_GENERAL
image
layout in pCopySrcLayouts
.
The optimalTilingLayoutUUID
value can be used to ensure compatible
data layouts when using the VK_HOST_IMAGE_COPY_MEMCPY_EXT
flag in
vkCopyMemoryToImageEXT and vkCopyImageToMemoryEXT.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.