HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_ARM_tensors

Name

VK_ARM_tensors - device extension

VK_ARM_tensors

Name String

VK_ARM_tensors

Extension Type

Device extension

Registered Extension Number

461

Revision

2

Ratification Status

Not ratified

Extension and Version Dependencies

Vulkan Version 1.3

API Interactions
  • Interacts with VK_EXT_descriptor_buffer

  • Interacts with VK_EXT_frame_boundary

  • Interacts with VK_EXT_shader_float8

  • Interacts with VK_KHR_shader_bfloat16

SPIR-V Dependencies
Contact
Extension Proposal

VK_ARM_tensors

Other Extension Metadata

Last Modified Date

2026-01-07

Interactions and External Dependencies
  • This extension requires SPV_ARM_tensors

  • This extension provides API support for GL_ARM_tensors

  • This extension interacts with VK_EXT_mutable_descriptor_type

  • This extension interacts with VK_EXT_descriptor_buffer

  • This extension interacts with VK_EXT_frame_boundary

  • This extension interacts with VK_EXT_robustness2

  • This extension interacts with VK_KHR_unified_image_layouts

  • This extension interacts with VK_KHR_shader_bfloat16

  • This extension interacts with VK_EXT_shader_float8

IP Status

No known IP claims.

Contributors
  • Kévin Petit, Arm Ltd.

  • Einar Hov, Arm Ltd.

  • Dominic Symes, Arm Ltd.

  • Jan-Harald Fredriksen, Arm Ltd.

  • Marco Cattani, Arm Ltd.

  • Lisa Wu, Arm Ltd.

  • Robert Hughes, Arm Ltd.

  • David Garbett, Arm Ltd.

  • Oualid Khelifi, Arm Ltd.

Description

This extension adds support for tensors.

New Object Types

New Commands

If VK_EXT_descriptor_buffer is supported:

New Structures

If VK_EXT_descriptor_buffer is supported:

If VK_EXT_frame_boundary is supported:

New Enums

New Bitmasks

New Enum Constants

If VK_EXT_descriptor_buffer is supported:

If VK_EXT_frame_boundary is supported:

If VK_EXT_shader_float8 is supported:

If VK_KHR_shader_bfloat16 is supported:

New SPIR-V Capabilities

Issues

1) Should tensor strides be passed in elements or in bytes?

RESOLVED: Strides are passed in bytes but are required to be a multiple of the tensor element size. Passing strides in bytes makes it possible to relax this requirement in the future without an interface change. It also makes it easier to describe memory alignment requirements.

2) Should there be commands to copy data between tensors and buffers/images?

RESOLVED: Adding these commands would result in a rather large API surface and not insignificant implementation and validation cost. The same outcome can be achieved with memory aliasing and tensor to tensor copy operations.

3) Should this extension define transpose and/or other data reorganization operations?

RESOLVED: These operations are useful to expose but this extension is only meant to add base support for tensors. Additional operations should be layered on top and defined in other extensions.

4) Why are tensor strides described using signed integers?

RESOLVED: Negative strides make it possible to describe different linear data layouts. While this extension does not allow negative strides, it uses signed integers for strides to make it possible to relax this limitation in future extensions.

Version History

  • Revision 2, 2026-01-07 (Kévin Petit)

    • Add interactions with VK_KHR_unified_image_layouts, VK_KHR_shader_bfloat16, and VK_EXT_shader_float8

  • Revision 1, 2025-06-03 (Kévin Petit)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

  • 35 types
  • 13 values
  • Packagevulkan-3.27
  • Exports62
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_ARM_tensors.hs
valuecreateTensorARM
  1. :: (Extendss TensorCreateInfoARM a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that creates the tensor.

  3. -> TensorCreateInfoARM a

    pCreateInfo is a pointer to a TensorCreateInfoARM structure containing parameters to be used to create the tensor.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io TensorARM
#

vkCreateTensorARM - Create a new tensor object

Valid Usage

  • The tensors feature must be enabled

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pCreateInfo must be a valid pointer to a valid TensorCreateInfoARM structure

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • pTensor must be a valid pointer to a TensorARM handle

  • The device must have been created with at least 1 queue

Return Codes

Success
Failure

See Also

VK_ARM_tensors, AllocationCallbacks, Device, TensorARM, TensorCreateInfoARM

A convenience wrapper to make a compatible pair of calls to createTensorARM and destroyTensorARM

To ensure that destroyTensorARM is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

valuedestroyTensorARM
  1. :: MonadIO io
  2. => Device

    device is the logical device that destroys the tensor.

  3. -> TensorARM

    tensor is the tensor to destroy.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io ()
#

vkDestroyTensorARM - Destroy a tensor object

Valid Usage

  • All submitted commands that refer to tensor, either directly or via a TensorViewARM, must have completed execution

  • If AllocationCallbacks were provided when tensor was created, a compatible set of callbacks must be provided here

  • If no AllocationCallbacks were provided when tensor was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle

  • If tensor is not NULL_HANDLE, tensor must be a valid TensorARM handle

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • If tensor is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to tensor must be externally synchronized

See Also

VK_ARM_tensors, AllocationCallbacks, Device, TensorARM

valuecreateTensorViewARM
  1. :: (Extendss TensorViewCreateInfoARM a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that creates the tensor view.

  3. -> TensorViewCreateInfoARM a

    pCreateInfo is a pointer to an instance of the TensorViewCreateInfoARM structure containing parameters to be used to create the tensor view.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io TensorViewARM
#

vkCreateTensorViewARM - Create an tensor view from an existing tensor

Description

Some of the tensor creation parameters are inherited by the view. In particular, other than format, the tensor view creation inherits all other parameters from the tensor.

The remaining parameters are contained in pCreateInfo.

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pCreateInfo must be a valid pointer to a valid TensorViewCreateInfoARM structure

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • pView must be a valid pointer to a TensorViewARM handle

  • The device must have been created with at least 1 queue

Return Codes

Success
Failure

See Also

VK_ARM_tensors, AllocationCallbacks, Device, TensorViewARM, TensorViewCreateInfoARM

A convenience wrapper to make a compatible pair of calls to createTensorViewARM and destroyTensorViewARM

To ensure that destroyTensorViewARM is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

valuedestroyTensorViewARM
  1. :: MonadIO io
  2. => Device

    device is the logical device that destroys the tensor view.

  3. -> TensorViewARM

    tensorView is the tensor view to destroy.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator controls host memory allocation as described in the Memory Allocation chapter.

  5. -> io ()
#

vkDestroyTensorViewARM - Destroy a tensor view object

Valid Usage

  • All submitted commands that refer to tensorView must have completed execution

  • If AllocationCallbacks were provided when tensorView was created, a compatible set of callbacks must be provided here

  • If no AllocationCallbacks were provided when tensorView was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle

  • If tensorView is not NULL_HANDLE, tensorView must be a valid TensorViewARM handle

  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure

  • If tensorView is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to tensorView must be externally synchronized

See Also

VK_ARM_tensors, AllocationCallbacks, Device, TensorViewARM

valuegetTensorMemoryRequirementsARM
  1. :: (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)
  2. => Device

    device is the logical device that owns the tensor.

    device must be a valid Device handle

  3. -> TensorMemoryRequirementsInfoARM

    pInfo is a pointer to a TensorMemoryRequirementsInfoARM structure containing parameters required for the memory requirements query.

    pInfo must be a valid pointer to a valid TensorMemoryRequirementsInfoARM structure

  4. -> io (MemoryRequirements2 a)
#

vkGetTensorMemoryRequirementsARM - Returns the memory requirements for specified Vulkan object

Valid Usage (Implicit)

See Also

VK_ARM_tensors, Device, MemoryRequirements2, TensorMemoryRequirementsInfoARM

valuebindTensorMemoryARM
  1. :: MonadIO io
  2. => Device

    device is the logical device that owns the buffers and memory.

    device must be a valid Device handle

  3. -> "bindInfos" ::: Vector BindTensorMemoryInfoARM

    pBindInfos is a pointer to an array of structures of type BindTensorMemoryInfoARM, describing tensors and memory to bind.

    pBindInfos must be a valid pointer to an array of bindInfoCount valid BindTensorMemoryInfoARM structures

  4. -> io ()
#

vkBindTensorMemoryARM - Bind device memory to tensor objects

Description

On some implementations, it may be more efficient to batch memory bindings into a single command.

Return Codes

Success
Failure

See Also

VK_ARM_tensors, BindTensorMemoryInfoARM, Device

valuegetDeviceTensorMemoryRequirementsARM
  1. :: (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)
  2. => Device

    device is the logical device intended to own the tensor.

  3. -> "info" ::: DeviceTensorMemoryRequirementsARM

    pInfo is a pointer to a DeviceTensorMemoryRequirementsARM structure containing parameters required for the memory requirements query.

  4. -> io (MemoryRequirements2 a)
#

vkGetDeviceTensorMemoryRequirementsARM - Returns the memory requirements for specified tensor creation infos

Valid Usage

  • The tensors feature must be enabled

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

VK_ARM_tensors, Device, DeviceTensorMemoryRequirementsARM, MemoryRequirements2

valuecmdCopyTensorARM
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer into which the command will be recorded.

  3. -> CopyTensorInfoARM

    pCopyTensorInfo is a pointer to CopyTensorInfoARM structure describing the copy parameters.

  4. -> io ()
#

vkCmdCopyTensorARM - Copy data between tensors

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Outside

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BIT

Action

Conditional Rendering

vkCmdCopyTensorARM is not affected by conditional rendering

See Also

VK_ARM_tensors, CommandBuffer, CopyTensorInfoARM

valuegetTensorOpaqueCaptureDescriptorDataARM
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> TensorCaptureDescriptorDataInfoARM

    pInfo is a pointer to a TensorCaptureDescriptorDataInfoARM structure specifying the tensor.

  4. -> "data" ::: Ptr ()

    pData is a pointer to a user-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetTensorOpaqueCaptureDescriptorDataARM - Get tensor opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, Device, TensorCaptureDescriptorDataInfoARM

valuegetTensorViewOpaqueCaptureDescriptorDataARM
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> TensorViewCaptureDescriptorDataInfoARM

    pInfo is a pointer to a TensorViewCaptureDescriptorDataInfoARM structure specifying the tensor view.

  4. -> "data" ::: Ptr ()

    pData is a pointer to a user-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetTensorViewOpaqueCaptureDescriptorDataARM - Get tensor view opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, Device, TensorViewCaptureDescriptorDataInfoARM

valuegetPhysicalDeviceExternalTensorPropertiesARM
  1. :: MonadIO io
  2. => PhysicalDevice

    physicalDevice is the physical device from which to query the tensor capabilities.

    physicalDevice must be a valid PhysicalDevice handle

  3. -> PhysicalDeviceExternalTensorInfoARM

    pExternalTensorInfo is a pointer to a PhysicalDeviceExternalTensorInfoARM structure describing the parameters that would be consumed by createTensorARM.

    pExternalTensorInfo must be a valid pointer to a valid PhysicalDeviceExternalTensorInfoARM structure

  4. -> io ExternalTensorPropertiesARM
#

vkGetPhysicalDeviceExternalTensorPropertiesARM - Function for querying external tensor handle capabilities.

Valid Usage (Implicit)

See Also

VK_ARM_tensors, ExternalTensorPropertiesARM, PhysicalDevice, PhysicalDeviceExternalTensorInfoARM

datadata TensorDescriptionARM
#

VkTensorDescriptionARM - Structure describing a tensor

Description

When describing a tensor created with TENSOR_TILING_OPTIMAL_ARM, pStrides must be equal to NULL. When describing a tensor created with TENSOR_TILING_LINEAR_ARM, pStrides is either an array of size dimensionCount or NULL.

The formats that must be supported for format are documented in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-formats-mandatory-features-tensor.

Each element in the pStrides array describes the offset in bytes between increments of the given dimension. For example, pStrides[0] describes the offset between element [x0,x1,x2,x3] and element [x0+1,x1,x2,x3]. The pStrides array can be used to determine whether a tensor is packed or not. If pStrides[dimensionCount-1] is equal to the size of a tensor element and for each dimension n greater than 0 and less than dimensionCount, pStrides[n-1] is equal to pStrides[n] * pDimensions[n], then the tensor is a packed tensor. If the tensorNonPacked feature is not enabled, the tensor must be a packed tensor.

When a tensor is created with TENSOR_TILING_LINEAR_ARM and pStrides equal to NULL the tensor strides are calculated by the vulkan implementation such that the resulting tensor is a packed tensor.

Expressed as an addressing formula, the starting byte of an element in a 4-dimensional, for example, linear tensor has address:

// Assume (x0,x1,x2,x3) are in units of elements.

address(x0,x1,x2,x3) = x0*pStrides[0] + x1*pStrides[1] + x2*pStrides[2] + x3*pStrides[3]

Valid Usage

Valid Usage (Implicit)

  • tiling must be a valid TensorTilingARM value

  • format must be a valid Format value

  • pDimensions must be a valid pointer to an array of dimensionCount int64_t values

  • If pStrides is not NULL, pStrides must be a valid pointer to an array of dimensionCount int64_t values

  • usage must be a valid combination of TensorUsageFlagBitsARM values

  • usage must not be 0

  • dimensionCount must be greater than 0

Structure Chaining

Extends the structures

See Also

VK_ARM_tensors, Format, PhysicalDeviceExternalTensorInfoARM, StructureType, TensorCreateInfoARM, TensorTilingARM, TensorUsageFlagsARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero
datadata TensorCreateInfoARM (es :: [Type])
#
Instances5Extensible, Show, FromCStruct, ToCStruct, Zero
datadata TensorViewCreateInfoARM (es :: [Type])
#

VkTensorViewCreateInfoARM - Structure specifying parameters of a newly created tensor view

Description

If tensor was created with the TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM flag, format can be different from the tensor’s format, but if they are not equal they must be compatible. Tensor format compatibility is defined in the Format Compatibility Classes section. Views of compatible formats will have the same mapping between element locations irrespective of the format, with only the interpretation of the bit pattern changing.

Values intended to be used with one view format may not be exactly preserved when written or read through a different format. For example, an integer value that happens to have the bit pattern of a floating-point denorm or NaN may be flushed or canonicalized when written or read through a view with a floating-point format. Similarly, a value written through a signed normalized format that has a bit pattern exactly equal to -2b may be changed to -2b + 1 as described in Conversion from Normalized Fixed-Point to Floating-Point.

Valid Usage

Valid Usage (Implicit)

See Also

VK_ARM_tensors, VK_EXT_descriptor_heap, Format, ResourceDescriptorDataEXT, StructureType, TensorARM, TensorViewCreateFlagsARM, createTensorViewARM

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero

VkTensorMemoryRequirementsInfoARM - Structure specifying memory requirements

Valid Usage (Implicit)

See Also

VK_ARM_tensors, StructureType, TensorARM, getTensorMemoryRequirementsARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkBindTensorMemoryInfoARM - Structure specifying how to bind a tensor to memory

Valid Usage

  • tensor must not already be backed by a memory object

Valid Usage (Implicit)

  • pNext must be NULL

  • tensor must be a valid TensorARM handle

  • memory must be a valid DeviceMemory handle

  • Both of memory, and tensor must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to tensor must be externally synchronized

See Also

VK_ARM_tensors, DeviceMemory, DeviceSize, StructureType, TensorARM, bindTensorMemoryARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkWriteDescriptorSetTensorARM - Structure specifying descriptor tensor info

Valid Usage

Valid Usage (Implicit)

  • pTensorViews must be a valid pointer to an array of tensorViewCount valid or NULL_HANDLE TensorViewARM handles

  • tensorViewCount must be greater than 0

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, StructureType, TensorViewARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero

VkTensorFormatPropertiesARM - Structure specifying properties of a format used to describe tensor elements

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, FormatFeatureFlags2, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceTensorPropertiesARM - Structure describing the tensor properties of a physical device

Description

If the PhysicalDeviceTensorPropertiesARM structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, Bool32, ShaderStageFlags, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTensorMemoryBarrierARM - Structure specifying a tensor memory barrier

Description

The first synchronization scope and access scope described by this structure include only operations and memory accesses specified by srcStageMask and srcAccessMask.

The second synchronization scope and access scope described by this structure include only operations and memory accesses specified by dstStageMask and dstAccessMask.

Both access scopes are limited to only memory accesses to tensor.

If tensor was created with SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, this memory barrier defines a queue family transfer operation. When executed on a queue in the family identified by srcQueueFamilyIndex, this barrier defines a queue family release operation for the specified tensor, and the second synchronization and access scopes do not synchronize operations on that queue. When executed on a queue in the family identified by dstQueueFamilyIndex, this barrier defines a queue family acquire operation for the specified tensor, and the first synchronization and access scopes do not synchronize operations on that queue.

A queue family transfer operation is also defined if the values are not equal, and either is one of the special queue family values reserved for external memory ownership transfers, as described in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-queue-transfers. A queue family release operation is defined when dstQueueFamilyIndex is one of those values, and a queue family acquire operation is defined when srcQueueFamilyIndex is one of those values.

Valid Usage

Valid Usage (Implicit)

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, AccessFlags2, PipelineStageFlags2, StructureType, TensorARM, TensorDependencyInfoARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTensorDependencyInfoARM - Structure specifying tensor dependency information for a synchronization command

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, StructureType, TensorMemoryBarrierARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero

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

Members

The members of the PhysicalDeviceTensorFeaturesARM structure describe the following features:

Description

If the PhysicalDeviceTensorFeaturesARM structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceTensorFeaturesARM, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Structure Chaining

Extends the structures

See Also

VK_ARM_tensors, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkDeviceTensorMemoryRequirementsARM - (None)

Valid Usage (Implicit)

See Also

VK_ARM_tensors, StructureType, TensorCreateInfoARM, getDeviceTensorMemoryRequirementsARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero
datadata CopyTensorInfoARM
#

VkCopyTensorInfoARM - Structure specifying an tensor copy operation

Description

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.

cmdCopyTensorARM allows copying between size-compatible internal formats.

Valid Usage

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

Valid Usage (Implicit)

  • pNext must be NULL

  • srcTensor must be a valid TensorARM handle

  • dstTensor must be a valid TensorARM handle

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

  • regionCount must be greater than 0

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

See Also

VK_ARM_tensors, StructureType, TensorARM, TensorCopyARM, cmdCopyTensorARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero
datadata TensorCopyARM
#

VkTensorCopyARM - Structure specifying an tensor copy region

Valid Usage

  • dimensionCount must be greater than 0 if pSrcOffset, pDstOffset, or pExtent is not NULL

Valid Usage (Implicit)

  • pNext must be NULL

  • If dimensionCount is not 0, and pSrcOffset is not NULL, pSrcOffset must be a valid pointer to an array of dimensionCount uint64_t values

  • If dimensionCount is not 0, and pDstOffset is not NULL, pDstOffset must be a valid pointer to an array of dimensionCount uint64_t values

  • If dimensionCount is not 0, and pExtent is not NULL, pExtent must be a valid pointer to an array of dimensionCount uint64_t values

See Also

VK_ARM_tensors, CopyTensorInfoARM, StructureType

Constructors

  • TensorCopyARM
    • dimensionCount :: Word32

      dimensionCount is the number of elements in the pSrcOffset, pDstOffset and pExtent arrays.

    • srcOffset :: Vector Word64

      pSrcOffset is NULL or an array of size dimensionCount providing an offset into the source tensor. When pSrcOffset is NULL, the offset into the source tensor is 0 in all dimensions.

    • dstOffset :: Vector Word64

      pDstOffset is NULL or an array of size dimensionCount providing an offset into the destination tensor. When pDstOffset is NULL, the offset into the destination tensor is 0 in all dimensions.

    • extent :: Vector Word64

      pExtent is NULL or an array of size dimensionCount providing the number of elements to copy in each dimension. When pExtent is NULL, the number of elements to copy is taken as the total number of elements in each dimension of the source tensor.

Instances4Show, FromCStruct, ToCStruct, Zero

VkMemoryDedicatedAllocateInfoTensorARM - Specify a dedicated memory allocation tensor resource

Valid Usage

Valid Usage (Implicit)

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, StructureType, TensorARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDescriptorBufferTensorPropertiesARM - Structure describing descriptor buffer tensor properties supported by an implementation

Description

If the PhysicalDeviceDescriptorBufferTensorPropertiesARM structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDescriptorBufferTensorFeaturesARM - Structure describing the descriptor buffer tensor features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceDescriptorBufferTensorFeaturesARM structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceDescriptorBufferTensorFeaturesARM, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Structure Chaining

Extends the structures

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTensorCaptureDescriptorDataInfoARM - Structure specifying a tensor for descriptor capture

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL

  • tensor must be a valid TensorARM handle

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, StructureType, TensorARM, getTensorOpaqueCaptureDescriptorDataARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTensorViewCaptureDescriptorDataInfoARM - Structure specifying a tensor view for descriptor capture

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL

  • tensorView must be a valid TensorViewARM handle

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, StructureType, TensorViewARM, getTensorViewOpaqueCaptureDescriptorDataARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkDescriptorGetTensorInfoARM - Structure specifying parameters to get descriptor data for tensor views

Valid Usage

Valid Usage (Implicit)

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, VK_EXT_descriptor_buffer, StructureType, TensorViewARM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkFrameBoundaryTensorsARM - Add tensor frame boundary information to queue submissions

Structure Chaining

Extends the structures

See Also

VK_ARM_tensors, VK_EXT_frame_boundary, StructureType, TensorARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceExternalTensorInfoARM - Structure specifying tensor creation parameters.

Valid Usage (Implicit)

See Also

VK_ARM_tensors, ExternalMemoryHandleTypeFlagBits, StructureType, TensorCreateFlagsARM, TensorDescriptionARM, getPhysicalDeviceExternalTensorPropertiesARM

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero

VkExternalTensorPropertiesARM - Structure specifying supported external handle capabilities for a tensor

Valid Usage (Implicit)

See Also

VK_ARM_tensors, ExternalMemoryProperties, StructureType, getPhysicalDeviceExternalTensorPropertiesARM

Constructors

Instances5Show, Storable, FromCStruct, ToCStruct, Zero

VkExternalMemoryTensorCreateInfoARM - Specify that a tensor may be backed by external memory

Members

A ExternalMemoryTensorCreateInfoARM structure with a non-zero handleTypes field must be included in the creation parameters for a tensor that will be bound to memory that is either exported or imported.

Structure Chaining

Extends the structure

See Also

VK_ARM_tensors, ExternalMemoryHandleTypeFlags, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
newtypenewtype TensorCreateFlagBitsARM
#

VkTensorCreateFlagBitsARM - Bitmask specifying additional parameters of a tensor

Description

See Also

VK_ARM_tensors, TensorCreateFlagsARM

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype TensorUsageFlagBitsARM
#

VkTensorUsageFlagBitsARM - Bitmask specifying allowed usage of a tensor

Description

See Also

VK_ARM_tensors, TensorUsageFlagsARM

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype TensorTilingARM
#

VkTensorTilingARM - Specifies the tiling arrangement of data in an tensor

Description

  • TENSOR_TILING_OPTIMAL_ARM specifies optimal tiling (elements are laid out in an implementation-dependent arrangement, for more efficient memory access).

  • TENSOR_TILING_LINEAR_ARM specifies linear tiling (elements are laid out linearly and the offset between each element is determined by the strides of the tensor).

See Also

VK_ARM_tensors, TensorDescriptionARM

Instances6Eq, Ord, Read, Show, Storable, Zero
newtypenewtype TensorViewCreateFlagBitsARM
#

VkTensorViewCreateFlagBitsARM - Bitmask specifying additional parameters of an tensor view

Description

See Also

VK_ARM_tensors, TensorViewCreateFlagsARM

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype TensorARM
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
newtypenewtype TensorViewARM
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …