VkGraphicsPipelineShaderGroupsCreateInfoNV
The VkGraphicsPipelineShaderGroupsCreateInfoNV
structure is defined
as:
typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
VkStructureType sType;
const void* pNext;
uint32_t groupCount;
const VkGraphicsShaderGroupCreateInfoNV* pGroups;
uint32_t pipelineCount;
const VkPipeline* pPipelines;
} VkGraphicsPipelineShaderGroupsCreateInfoNV;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.groupCount
is the number of elements in thepGroups
array.pGroups
is a pointer to an array of VkGraphicsShaderGroupCreateInfoNV structures specifying which state of the original VkGraphicsPipelineCreateInfo each shader group overrides.pipelineCount
is the number of elements in thepPipelines
array.pPipelines
is a pointer to an array of graphicsVkPipeline
structures which are referenced within the created pipeline, including all their shader groups.
When referencing shader groups by index, groups defined in the referenced
pipelines are treated as if they were defined as additional entries in
pGroups
.
They are appended in the order they appear in the pPipelines
array and
in the pGroups
array when those pipelines were defined.
The application must maintain the lifetime of all such referenced pipelines based on the pipelines that make use of them.
Valid Usage
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879
groupCount
must be at least 1
and as maximum
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880
The sum of groupCount
including those groups added from referenced
pPipelines
must also be as maximum
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881
The state of the first element of pGroups
must match its
equivalent within the parent’s VkGraphicsPipelineCreateInfo
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882
Each element of pGroups
must in combination with the rest of the
pipeline state yield a valid state configuration
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884
All elements of pGroups
must use the same shader stage
combinations
unless any mesh shader stage is used, then either combination of task
and mesh or just mesh shader is valid
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885
Mesh and regular primitive shading stages cannot be mixed across
pGroups
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886
Each element of pPipelines
must have been created with identical
state to the pipeline currently created except the state that can be
overridden by VkGraphicsShaderGroupCreateInfoNV
Valid Usage (Implicit)
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType
sType
must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter
If groupCount
is not 0
, pGroups
must be a valid pointer to an array of groupCount
valid VkGraphicsShaderGroupCreateInfoNV structures
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter
If pipelineCount
is not 0
, pPipelines
must be a valid pointer to an array of pipelineCount
valid VkPipeline handles