Structures

VkBindTensorMemoryInfoARM

Structure specifying how to bind a tensor to memory

The VkBindTensorMemoryInfoARM structure is defined as:

typedef struct VkBindTensorMemoryInfoARM {
    VkStructureType sType;
    const void* pNext;
    VkTensorARM tensor;
    VkDeviceMemory memory;
    VkDeviceSize memoryOffset;
} VkBindTensorMemoryInfoARM;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • tensor is the tensor to be attached to memory.
  • memory is a VkDeviceMemory object describing the device memory to attach.
  • memoryOffset is the start offset of the region of memory which is to be bound to the tensor. The number of bytes returned in the VkMemoryRequirements::size member in memory, starting from memoryOffset bytes, will be bound to the specified tensor.

Valid Usage

VUID-VkBindTensorMemoryInfoARM-tensor-09712

tensor must not already be backed by a memory object

VUID-VkBindTensorMemoryInfoARM-memoryOffset-09713

memoryOffset must be less than the size of memory

VUID-VkBindTensorMemoryInfoARM-memory-09714

memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor

VUID-VkBindTensorMemoryInfoARM-memoryOffset-09715

memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor

VUID-VkBindTensorMemoryInfoARM-size-09716

The size member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor must be less than or equal to the size of memory minus memoryOffset

VUID-VkBindTensorMemoryInfoARM-tensor-09717

If tensor requires a dedicated allocation (as reported by vkGetTensorMemoryRequirementsARM in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for tensor), memory must have been created with VkMemoryDedicatedAllocateInfoTensorARM::tensor equal to tensor

VUID-VkBindTensorMemoryInfoARM-memory-09806

If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfoTensorARM structure in its pNext chain, and VkMemoryDedicatedAllocateInfoTensorARM::tensor was not VK_NULL_HANDLE, then tensor must equal VkMemoryDedicatedAllocateInfoTensorARM::tensor, and memoryOffset must be zero

VUID-VkBindTensorMemoryInfoARM-memory-09895

If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created

VUID-VkBindTensorMemoryInfoARM-memory-09896

If memory was allocated by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created

VUID-VkBindTensorMemoryInfoARM-memory-09897

If memory was allocated with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROIDmust also have been set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created

VUID-VkBindTensorMemoryInfoARM-tensor-09718

If tensor was created with the VK_TENSOR_CREATE_PROTECTED_BIT_ARM bit set, the tensor must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT

VUID-VkBindTensorMemoryInfoARM-tensor-09719

If tensor was created with the VK_TENSOR_CREATE_PROTECTED_BIT_ARM bit not set, the tensor must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT

VUID-VkBindTensorMemoryInfoARM-tensor-09943

If tensor was created with the VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set

VUID-VkBindTensorMemoryInfoARM-tensor-09944

If tensor was created with the VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set

VUID-VkBindTensorMemoryInfoARM-tensor-11406

If tensor was created with the VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set

VUID-VkBindTensorMemoryInfoARM-tensor-11407

If tensor was created with the VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set

Valid Usage (Implicit)

VUID-VkBindTensorMemoryInfoARM-sType-sType

sType must be VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM

VUID-VkBindTensorMemoryInfoARM-commonparent

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

Host Synchronization

  • Host access to tensor must be externally synchronized