Structures

VkDescriptorAddressInfoEXT

Structure specifying descriptor buffer address info

Data describing a VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is passed in a VkDescriptorAddressInfoEXT structure:

typedef struct VkDescriptorAddressInfoEXT {
    VkStructureType sType;
    void* pNext;
    VkDeviceAddress address;
    VkDeviceSize range;
    VkFormat format;
} VkDescriptorAddressInfoEXT;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • address is either 0 or a device address at an offset in a buffer, where the base address can be queried from vkGetBufferDeviceAddress.
  • range is the size in bytes of the buffer or buffer view used by the descriptor.
  • format is the format of the data elements in the buffer view and is ignored for buffers.

Valid Usage

VUID-VkDescriptorAddressInfoEXT-None-09508

If address is not zero, and the descriptor is of type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, then formatmust not be VK_FORMAT_UNDEFINED

VUID-VkDescriptorAddressInfoEXT-address-08043

If the nullDescriptor feature is not enabled, address must not be zero

VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938

If address is zero, range must be VK_WHOLE_SIZE

VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939

If address is not zero, range must not be VK_WHOLE_SIZE

VUID-VkDescriptorAddressInfoEXT-None-08044

If address is not zero, address must be a valid device address at an offset within a VkBuffer

VUID-VkDescriptorAddressInfoEXT-range-08045

range must be less than or equal to the size of the buffer containing address minus the offset of address from the base address of the buffer

Valid Usage (Implicit)

VUID-VkDescriptorAddressInfoEXT-sType-sType

sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT

If the nullDescriptor feature is enabled, address can be zero. Loads from a null descriptor return zero values and stores and atomics to a null descriptor are discarded.