Structures

VkCopyTensorInfoARM

Structure specifying an tensor copy operation

The VkCopyTensorInfoARM structure is defined as:

typedef struct VkCopyTensorInfoARM {
    VkStructureType sType;
    const void* pNext;
    VkTensorARM srcTensor;
    VkTensorARM dstTensor;
    uint32_t regionCount;
    const VkTensorCopyARM* pRegions;
} VkCopyTensorInfoARM;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • srcTensor is the source tensor.
  • dstTensor is the destination tensor.
  • regionCount is the number of regions to copy.
  • pRegions is a pointer to an array of VkTensorCopyARM structures specifying the regions to copy.

Each region in pRegions describes a region to be copied from the source tensor to a corresponding region of the destination tensor. srcTensor and dstTensor can be the same tensor or alias the same memory.

The formats of srcTensor and dstTensor must be compatible. Formats are compatible if they share the same class, as shown in the Compatible Formats table.

vkCmdCopyTensorARM allows copying between size-compatible internal formats.

Valid Usage

VUID-VkCopyTensorInfoARM-dimensionCount-09684

srcTensor and dstTensor must have been created with equal values for VkTensorDescriptionARM::dimensionCount

VUID-VkCopyTensorInfoARM-pDimensions-09685

For each of the elements of VkTensorDescriptionARM::pDimensions, srcTensor and dstTensor must be the same size

VUID-VkCopyTensorInfoARM-regionCount-09686

regionCount must be equal to 1

VUID-VkCopyTensorInfoARM-pRegions-09687

Each element of pRegions must be a VkTensorCopyARM structure whose pSrcOffset is NULL or has all its elements equal to 0

VUID-VkCopyTensorInfoARM-pRegions-09688

Each element of pRegions must be a VkTensorCopyARM structure whose pDstOffset is NULL or has all its elements equal to 0

VUID-VkCopyTensorInfoARM-pRegions-09689

Each element of pRegions must be a VkTensorCopyARM structure whose pExtent is NULL or equal to the VkTensorDescriptionARM::pDimensions array specified when srcTensor and dstTensor were created

VUID-VkCopyTensorInfoARM-pRegions-09954

Each element of pRegions must be a VkTensorCopyARM structure whose dimensionCount, if it is not equal to 0, is equal to the largest of the VkTensorDescriptionARM::dimensionCount of srcTensor or dstTensor

VUID-VkCopyTensorInfoARM-srcTensor-09690

The format features of srcTensor must contain VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT

VUID-VkCopyTensorInfoARM-srcTensor-09691

srcTensor must have been created with the VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM usage flag set

VUID-VkCopyTensorInfoARM-dstTensor-09692

The format features of dstTensor must contain VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT

VUID-VkCopyTensorInfoARM-dstTensor-09693

dstTensor must have been created with the VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM usage flag set

VUID-VkCopyTensorInfoARM-srcTensor-09694

If srcTensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object

VUID-VkCopyTensorInfoARM-dstTensor-09695

If dstTensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object

Valid Usage (Implicit)

VUID-VkCopyTensorInfoARM-sType-sType

sType must be VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM

VUID-VkCopyTensorInfoARM-pRegions-parameter

pRegions must be a valid pointer to an array of regionCount valid VkTensorCopyARM structures

VUID-VkCopyTensorInfoARM-regionCount-arraylength

regionCount must be greater than 0

VUID-VkCopyTensorInfoARM-commonparent

Both of dstTensor, and srcTensor must have been created, allocated, or retrieved from the same VkDevice