VkPhysicalDeviceTensorFeaturesARM(3)

# VkPhysicalDeviceTensorFeaturesARM(3) Manual Page

## Name

VkPhysicalDeviceTensorFeaturesARM - Structure describing tensor features that can be supported by an implementation

## C Specification

The `VkPhysicalDeviceTensorFeaturesARM` structure is defined as:

    // Provided by VK_ARM_tensors
    typedef struct VkPhysicalDeviceTensorFeaturesARM {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           tensorNonPacked;
        VkBool32           shaderTensorAccess;
        VkBool32           shaderStorageTensorArrayDynamicIndexing;
        VkBool32           shaderStorageTensorArrayNonUniformIndexing;
        VkBool32           descriptorBindingStorageTensorUpdateAfterBind;
        VkBool32           tensors;
    } VkPhysicalDeviceTensorFeaturesARM;

## Members

The members of the `VkPhysicalDeviceTensorFeaturesARM` structure describe the following features:

## Description

- `tensorNonPacked` indicates whether the implementation supports the creation of tensors that are not packed tensors.

- `shaderTensorAccess` indicates whether shader modules can declare the `TensorsARM` capability.

- `shaderStorageBufferArrayDynamicIndexing` indicates whether arrays of storage tensors can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_TENSOR_ARM must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the `StorageTensorArrayDynamicIndexingARM` capability.

- `shaderStorageTensorArrayNonUniformIndexing` indicates whether arrays of storage tensors can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_TENSOR_ARM must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the `StorageTensorArrayNonUniformIndexingARM` capability.

- `descriptorBindingStorageTensorUpdateAfterBind` indicates whether the implementation supports updating storage tensor descriptors after a set is bound. If this feature is not enabled, VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must not be used with VK_DESCRIPTOR_TYPE_TENSOR_ARM.

- `tensors` indicates whether the implementation supports tensor resources.

If the `VkPhysicalDeviceTensorFeaturesARM` structure is included in the `pNext` chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a VkDevice with any features described by `VkPhysicalDeviceTensorFeaturesARM`, it must add an instance of the structure, with the desired feature members set to VK_TRUE, to the `pNext` chain of VkDeviceCreateInfo when creating the VkDevice.

Valid Usage (Implicit)

- VUID-VkPhysicalDeviceTensorFeaturesARM-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM

Structure Chaining

Extends the structures

  - VkDeviceCreateInfo

  - VkPhysicalDeviceFeatures2

## See Also

VK_ARM_tensors, VkBool32, VkStructureType

## 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.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0