VkBindIndexBuffer3InfoKHR
VkBindIndexBuffer3InfoKHR is defined as:
typedef struct VkBindIndexBuffer3InfoKHR {
VkStructureType sType;
const void* pNext;
VkDeviceAddressRangeKHR addressRange;
VkAddressCommandFlagsKHR addressFlags;
VkIndexType indexType;
} VkBindIndexBuffer3InfoKHR;
pub struct BindIndexBuffer3InfoKHR {
s_type: vk::StructureType,
p_next: *const c_void,
address_range: vk::DeviceAddressRangeKHR,
address_flags: vk::AddressCommandFlagsKHR,
index_type: vk::IndexType,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.addressRangeis the VkDeviceAddressRangeKHR of the address range to bind.addressFlagsis a VkAddressCommandFlagsKHR value defining the flags for the address range.indexTypeis a VkIndexType value specifying the size of the indices.
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
VUID-VkBindIndexBuffer3InfoKHR-pNext-pNext
pNext must be NULL
VUID-VkBindIndexBuffer3InfoKHR-addressFlags-parameter
addressFlags must be a valid combination of VkAddressCommandFlagBitsKHR values
VUID-VkBindIndexBuffer3InfoKHR-indexType-parameter
indexType must be a valid VkIndexType value