VkDispatchIndirect2InfoKHR
VkDispatchIndirect2InfoKHR is defined as:
typedef struct VkDispatchIndirect2InfoKHR {
VkStructureType sType;
const void* pNext;
VkDeviceAddressRangeKHR addressRange;
VkAddressCommandFlagsKHR addressFlags;
} VkDispatchIndirect2InfoKHR;
pub struct DispatchIndirect2InfoKHR {
s_type: vk::StructureType,
p_next: *const c_void,
address_range: vk::DeviceAddressRangeKHR,
address_flags: vk::AddressCommandFlagsKHR,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.addressRangeis the VkDeviceAddressRangeKHR containing dispatch parameters.addressFlagsis a VkAddressCommandFlagsKHR value defining the flags for the address range.
Valid Usage
VUID-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-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-VkDispatchIndirect2InfoKHR-addressRange-13107
The buffer from which addressRange was queried must have been
created with VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT usage flag
VUID-VkDispatchIndirect2InfoKHR-protectedNoFault-13108
If protectedNoFault is not supported,
the buffer from which addressRange was queried must not have been
created with VK_BUFFER_CREATE_PROTECTED_BIT
VUID-VkDispatchIndirect2InfoKHR-addressRange-13109
addressRange.address must be a multiple of 4
Valid Usage (Implicit)
VUID-VkDispatchIndirect2InfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR
VUID-VkDispatchIndirect2InfoKHR-pNext-pNext
pNext must be NULL
VUID-VkDispatchIndirect2InfoKHR-addressFlags-parameter
addressFlags must be a valid combination of VkAddressCommandFlagBitsKHR values