C Specification
The VkGeneratedCommandsInfoEXT is defined as:
// Provided by VK_EXT_device_generated_commands
typedef struct VkGeneratedCommandsInfoEXT {
VkStructureType sType;
const void* pNext;
VkShaderStageFlags shaderStages;
VkIndirectExecutionSetEXT indirectExecutionSet;
VkIndirectCommandsLayoutEXT indirectCommandsLayout;
VkDeviceAddress indirectAddress;
VkDeviceSize indirectAddressSize;
VkDeviceAddress preprocessAddress;
VkDeviceSize preprocessSize;
uint32_t maxSequenceCount;
VkDeviceAddress sequenceCountAddress;
uint32_t maxDrawCount;
} VkGeneratedCommandsInfoEXT;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
shaderStagesis the mask of shader stages used by the commands. -
indirectExecutionSetis the indirect execution set to be used for binding shaders. -
indirectCommandsLayoutis the VkIndirectCommandsLayoutEXT that specifies the command sequence data. -
indirectAddressis an address that holds the indirect buffer data. -
indirectAddressSizeis the size in bytes of indirect buffer data starting atindirectAddress. -
preprocessAddressspecifies a physical address of theVkBufferused for preprocessing the input data for execution. If this structure is used with vkCmdExecuteGeneratedCommandsEXT with itsisPreprocessedset toVK_TRUE, then the preprocessing step is skipped but data in this address may still be modified. The contents and the layout of this address are opaque to applications and must not be modified outside functions related to device-generated commands or copied to another buffer for reuse. -
preprocessSizeis the maximum byte size withinpreprocessAddressthat is available for preprocessing. -
maxSequenceCountis used to determine the number of sequences to execute. -
sequenceCountAddressspecifies an optional physical address of a singleuint32_tvalue containing the requested number of sequences to execute. -
maxDrawCountis the maximum number of indirect draws that can be executed by any COUNT-type multi-draw indirect tokens. The draw count in the indirect buffer is clamped to this value for these token types.
Description
If sequenceCountAddress is not NULL, then maxSequenceCount is
the maximum number of sequences that can be executed.
The actual number is min(maxSequenceCount, *sequenceCountAddress).
If sequenceCountAddress is NULL, then maxSequenceCount is the
exact number of sequences to execute.
If the action command token for the layout is not a COUNT-type multi-draw
indirect token, maxDrawCount is ignored.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.