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
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
shaderStages
is the mask of shader stages used by the commands. -
indirectExecutionSet
is the indirect execution set to be used for binding shaders. -
indirectCommandsLayout
is the VkIndirectCommandsLayoutEXT that specifies the command sequence data. -
indirectAddress
is an address that holds the indirect buffer data. -
indirectAddressSize
is the size in bytes of indirect buffer data starting atindirectAddress
. -
preprocessAddress
specifies a physical address of theVkBuffer
used for preprocessing the input data for execution. If this structure is used with vkCmdExecuteGeneratedCommandsEXT with itsisPreprocessed
set 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. -
preprocessSize
is the maximum byte size withinpreprocessAddress
that is available for preprocessing. -
maxSequenceCount
is used to determine the number of sequences to execute. -
sequenceCountAddress
specifies an optional physical address of a singleuint32_t
value containing the requested number of sequences to execute. -
maxDrawCount
is 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.