## C Specification

The VkDescriptorBufferInfo structure is defined as:

typedef struct VkDescriptorBufferInfo {
VkBuffer        buffer;
VkDeviceSize    offset;
VkDeviceSize    range;
} VkDescriptorBufferInfo;

## Members

• buffer is the buffer resource.

• offset is the offset in bytes from the start of buffer. Access to buffer memory via this descriptor uses addressing that is relative to this starting offset.

• range is the size in bytes that is used for this descriptor update, or VK_WHOLE_SIZE to use the range from offset to the end of the buffer.

 Note When using VK_WHOLE_SIZE, the effective range must not be larger than the maximum range for the descriptor type (maxUniformBufferRange or maxStorageBufferRange). This means that VK_WHOLE_SIZE is not typically useful in the common case where uniform buffer descriptors are suballocated from a buffer that is much larger than maxUniformBufferRange.

For VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC descriptor types, offset is the base offset from which the dynamic offset is applied and range is the static size used for all dynamic offsets.

## Description

Valid Usage
• offset must be less than the size of buffer

• If range is not equal to VK_WHOLE_SIZE, range must be greater than 0

• If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset

Valid Usage (Implicit)
• buffer must be a valid VkBuffer handle

VkBuffer, VkDeviceSize, VkWriteDescriptorSet