C Specification
The VkPhysicalDeviceHostImageCopyProperties structure is defined as:
// Provided by VK_VERSION_1_4
typedef struct VkPhysicalDeviceHostImageCopyProperties {
VkStructureType sType;
void* pNext;
uint32_t copySrcLayoutCount;
VkImageLayout* pCopySrcLayouts;
uint32_t copyDstLayoutCount;
VkImageLayout* pCopyDstLayouts;
uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
VkBool32 identicalMemoryTypeRequirements;
} VkPhysicalDeviceHostImageCopyProperties;
or the equivalent
// Provided by VK_EXT_host_image_copy
typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure.
Description
-
copySrcLayoutCountis an integer related to the number of image layouts for host copies from images available or queried, as described below. -
pCopySrcLayoutsis a pointer to an array of VkImageLayout in which supported image layouts for use with host copy operations from images are returned. -
copyDstLayoutCountis an integer related to the number of image layouts for host copies to images available or queried, as described below. -
pCopyDstLayoutsis a pointer to an array of VkImageLayout in which supported image layouts for use with host copy operations to images are returned. -
optimalTilingLayoutUUIDis an array ofVK_UUID_SIZEuint8_tvalues representing a universally unique identifier for the implementation’s swizzling layout of images created withVK_IMAGE_TILING_OPTIMAL. -
identicalMemoryTypeRequirementsindicates that specifying theVK_IMAGE_USAGE_HOST_TRANSFER_BITflag in VkImageCreateInfo::usagedoes not affect the memory type requirements of the image.
If the VkPhysicalDeviceHostImageCopyProperties 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 VkCopyMemoryToImageInfo::dstImageLayout and
VkCopyImageToImageInfo::dstImageLayout is returned in
copyDstLayoutCount.
Otherwise, copyDstLayoutCount must be set by the application 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 VkCopyImageToMemoryInfo::srcImageLayout and
VkCopyImageToImageInfo::srcImageLayout is returned in
copySrcLayoutCount.
Otherwise, copySrcLayoutCount must be set by the application 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 flag in
vkCopyMemoryToImage and vkCopyImageToMemory.
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.