VkTensorCreateInfoARM(3)

Name

VkTensorCreateInfoARM - Structure specifying the parameters of a newly created tensor object

C Specification

The VkTensorCreateInfoARM structure is defined as:

// Provided by VK_ARM_tensors
typedef struct VkTensorCreateInfoARM {
    VkStructureType                  sType;
    const void*                      pNext;
    VkTensorCreateFlagsARM           flags;
    const VkTensorDescriptionARM*    pDescription;
    VkSharingMode                    sharingMode;
    uint32_t                         queueFamilyIndexCount;
    const uint32_t*                  pQueueFamilyIndices;
} VkTensorCreateInfoARM;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • flags is a bitmask of VkTensorCreateFlagBitsARM describing additional parameters of the tensor.

  • pDescription is a pointer to an instance of VkTensorDescriptionARM describing the tensor.

  • sharingMode is a VkSharingMode value specifying the sharing mode of the tensor when it will be accessed by multiple queue families.

  • queueFamilyIndexCount is the number of entries in the pQueueFamilyIndices array.

  • pQueueFamilyIndices is a list of queue families that will access this tensor (ignored if sharingMode is not VK_SHARING_MODE_CONCURRENT).

Description

To determine the set of valid usage bits for a given tensor format, call vkGetPhysicalDeviceFormatProperties2 with VkTensorFormatPropertiesARM in the pNext chain.

Tensor Creation Limits

Valid values for some tensor creation parameters are limited by a numerical upper bound or by inclusion in a bitset.

Several limiting values are defined below. The limiting values are referenced by the relevant valid usage statements of VkTensorCreateInfoARM.

  • Let the uint64_t tensorElements define the number of data elements in the tensor computed as the product of all VkTensorCreateInfoARM::pDescription->pDimensions[i] for i between 0 and VkTensorCreateInfoARM::pDescription->dimensionCount - 1.

Valid Usage
  • VUID-VkTensorCreateInfoARM-pDescription-09720
    If pDescription->tiling is VK_TENSOR_TILING_OPTIMAL_ARM, pDescription->pStrides must be NULL

  • VUID-VkTensorCreateInfoARM-tensorElements-09721
    tensorElements (as defined in resources-tensor-creation-limits) must not be greater than VkPhysicalDeviceTensorPropertiesARM::maxTensorElements

  • VUID-VkTensorCreateInfoARM-sharingMode-09722
    If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values

  • VUID-VkTensorCreateInfoARM-sharingMode-09723
    If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1

  • VUID-VkTensorCreateInfoARM-sharingMode-09725
    If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device

  • VUID-VkTensorCreateInfoARM-pNext-09864
    If the pNext chain includes a VkExternalMemoryTensorCreateInfoARM structure, its handleTypes member must only contain bits that are also in VkExternalTensorPropertiesARM::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalTensorPropertiesARM with pExternalTensorInfo->handleType equal to any one of the handle types specified in VkExternalMemoryTensorCreateInfoARM::handleTypes

  • VUID-VkTensorCreateInfoARM-flags-09726
    If flags includes VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM, the descriptorBufferCaptureReplay feature must be enabled

  • VUID-VkTensorCreateInfoARM-pNext-09727
    If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM

  • VUID-VkTensorCreateInfoARM-pDescription-09728
    If pDescription->usage does not have any of the following bits set (i.e. if it is not possible to create a tensor view for this tensor), then the format features must contain the format feature flags required by the usage flags for pDescription->format as indicated in the Format Feature Dependent Usage Flags section

    • VK_TENSOR_USAGE_SHADER_BIT_ARM

    • VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM

  • VUID-VkTensorCreateInfoARM-protectedMemory-09729
    If the protectedMemory feature is not enabled, flags must not contain VK_TENSOR_CREATE_PROTECTED_BIT_ARM

Valid Usage (Implicit)
  • VUID-VkTensorCreateInfoARM-sType-sType
    sType must be VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM

  • VUID-VkTensorCreateInfoARM-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 VkExternalMemoryTensorCreateInfoARM or VkOpaqueCaptureDescriptorDataCreateInfoEXT

  • VUID-VkTensorCreateInfoARM-sType-unique
    The sType value of each structure in the pNext chain must be unique

  • VUID-VkTensorCreateInfoARM-flags-parameter
    flags must be a valid combination of VkTensorCreateFlagBitsARM values

  • VUID-VkTensorCreateInfoARM-pDescription-parameter
    pDescription must be a valid pointer to a valid VkTensorDescriptionARM structure

  • VUID-VkTensorCreateInfoARM-sharingMode-parameter
    sharingMode must be a valid VkSharingMode value

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.