Structures

VkBindVertexBuffer3InfoKHR

Bind vertex buffer info

VkBindVertexBuffer3InfoKHR is defined as:

typedef struct VkBindVertexBuffer3InfoKHR {
    VkStructureType sType;
    const void* pNext;
    VkBool32 setStride;
    VkStridedDeviceAddressRangeKHR addressRange;
    VkAddressCommandFlagsKHR addressFlags;
} VkBindVertexBuffer3InfoKHR;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • setStride is a VkBool32 value indicating whether addressRange.stride sets the stride for the buffer. If setStride is VK_TRUE, the dynamic stride is set for all attributes from this buffer. If setStride is VK_FALSE, the stride value is not set.
  • addressRange is the VkStridedDeviceAddressRangeKHR of the address range to bind.
  • addressFlags is a VkAddressCommandFlagsKHR value defining the flags for the address range.

Valid Usage

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13097

If the range specified by addressRange is not bound completely to memory when accessed, addressFlags must not include VK_ADDRESS_COMMAND_FULLY_BOUND_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13098

If the buffer from which the range specified by addressRange was created with VK_BUFFER_CREATE_PROTECTED_BIT, and protectedNoFault is not supported, addressFlags must include VK_ADDRESS_COMMAND_PROTECTED_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13099

If the buffer from which the range specified by addressRange was created without VK_BUFFER_CREATE_PROTECTED_BIT, and protectedNoFault is not supported, addressFlags must not include VK_ADDRESS_COMMAND_PROTECTED_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressFlags-13100

addressFlags must not include both VK_ADDRESS_COMMAND_STORAGE_BUFFER_USAGE_BIT_KHR and VK_ADDRESS_COMMAND_UNKNOWN_STORAGE_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13122

If any buffer, which is bound to a range of VkDeviceMemory that overlaps the range backing addressRange, was created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, addressFlags must include VK_ADDRESS_COMMAND_STORAGE_BUFFER_USAGE_BIT_KHR or VK_ADDRESS_COMMAND_UNKNOWN_STORAGE_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13123

If any buffer, which is bound to a range of VkDeviceMemory that overlaps the range backing addressRange, was created without VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, addressFlags must not include VK_ADDRESS_COMMAND_STORAGE_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressFlags-13101

addressFlags must not include both VK_ADDRESS_COMMAND_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR and VK_ADDRESS_COMMAND_UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13124

If any buffer, which is bound to a range of VkDeviceMemory that overlaps the range backing addressRange, was created with VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, addressFlags must include VK_ADDRESS_COMMAND_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR or VK_ADDRESS_COMMAND_UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13125

If any buffer, which is bound to a range of VkDeviceMemory that overlaps the range backing addressRange, was created without VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, addressFlags must not include VK_ADDRESS_COMMAND_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13074

If addressRange.address is not 0, the buffer from which addressRange was queried must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT usage flag set

VUID-VkBindVertexBuffer3InfoKHR-addressRange-13075

If addressRange.size is 0, addressRange.address must be 0

VUID-VkBindVertexBuffer3InfoKHR-size-13072

If the nullDescriptor feature is not enabled, addressRange.size must not be 0

VUID-VkBindVertexBuffer3InfoKHR-setStride-13126

If setStride is VK_TRUE, addressRange.stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride

VUID-VkBindVertexBuffer3InfoKHR-setStride-13127

If setStride is VK_FALSE, addressRange.stride must be 0

Valid Usage (Implicit)

VUID-VkBindVertexBuffer3InfoKHR-sType-sType

sType must be VK_STRUCTURE_TYPE_BIND_VERTEX_BUFFER_3_INFO_KHR