Structures

VkBindIndexBuffer3InfoKHR

Index buffer binding info

VkBindIndexBuffer3InfoKHR is defined as:

typedef struct VkBindIndexBuffer3InfoKHR {
    VkStructureType sType;
    const void* pNext;
    VkDeviceAddressRangeKHR addressRange;
    VkAddressCommandFlagsKHR addressFlags;
    VkIndexType indexType;
} VkBindIndexBuffer3InfoKHR;

Valid Usage

VUID-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-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-VkBindIndexBuffer3InfoKHR-addressRange-13051

If addressRange.address is not 0, the buffer from which addressRange was queried must have been created with VK_BUFFER_USAGE_INDEX_BUFFER_BIT

VUID-VkBindIndexBuffer3InfoKHR-addressRange-13052

addressRange.address must be a multiple of the size of the type indicated by indexType

VUID-VkBindIndexBuffer3InfoKHR-indexType-13053

indexType must not be VK_INDEX_TYPE_NONE_KHR

VUID-VkBindIndexBuffer3InfoKHR-indexType-13054

If indexType is VK_INDEX_TYPE_UINT8_KHR, the indexTypeUint8 feature must be enabled

VUID-VkBindIndexBuffer3InfoKHR-None-13055

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

VUID-VkBindIndexBuffer3InfoKHR-addressRange-13056

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

Valid Usage (Implicit)

VUID-VkBindIndexBuffer3InfoKHR-sType-sType

sType must be VK_STRUCTURE_TYPE_BIND_INDEX_BUFFER_3_INFO_KHR