VkBindVertexBuffer3InfoKHR
VkBindVertexBuffer3InfoKHR is defined as:
typedef struct VkBindVertexBuffer3InfoKHR {
VkStructureType sType;
const void* pNext;
VkBool32 setStride;
VkStridedDeviceAddressRangeKHR addressRange;
VkAddressCommandFlagsKHR addressFlags;
} VkBindVertexBuffer3InfoKHR;
pub struct BindVertexBuffer3InfoKHR {
s_type: vk::StructureType,
p_next: *const c_void,
set_stride: vk::Bool32,
address_range: vk::StridedDeviceAddressRangeKHR,
address_flags: vk::AddressCommandFlagsKHR,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.setStrideis a VkBool32 value indicating whetheraddressRange.stridesets the stride for the buffer. IfsetStrideisVK_TRUE, the dynamic stride is set for all attributes from this buffer. IfsetStrideisVK_FALSE, the stride value is not set.addressRangeis the VkStridedDeviceAddressRangeKHR of the address range to bind.addressFlagsis 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
VUID-VkBindVertexBuffer3InfoKHR-pNext-pNext
pNext must be NULL
VUID-VkBindVertexBuffer3InfoKHR-addressFlags-parameter
addressFlags must be a valid combination of VkAddressCommandFlagBitsKHR values