Structures

VkDispatchIndirect2InfoKHR

Dispatch indirect info

VkDispatchIndirect2InfoKHR is defined as:

typedef struct VkDispatchIndirect2InfoKHR {
    VkStructureType sType;
    const void* pNext;
    VkDeviceAddressRangeKHR addressRange;
    VkAddressCommandFlagsKHR addressFlags;
} VkDispatchIndirect2InfoKHR;

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