C Specification
The VkGraphicsPipelineCreateInfo structure is defined as:
// Provided by VK_VERSION_1_0
typedef struct VkGraphicsPipelineCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineCreateFlags flags;
uint32_t stageCount;
const VkPipelineShaderStageCreateInfo* pStages;
const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
const VkPipelineTessellationStateCreateInfo* pTessellationState;
const VkPipelineViewportStateCreateInfo* pViewportState;
const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
const VkPipelineDynamicStateCreateInfo* pDynamicState;
VkPipelineLayout layout;
VkRenderPass renderPass;
uint32_t subpass;
VkPipeline basePipelineHandle;
int32_t basePipelineIndex;
} VkGraphicsPipelineCreateInfo;
Members
-
sTypeis the type of this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
flagsis a bitmask of VkPipelineCreateFlagBits specifying how the pipeline will be generated. -
stageCountis the number of entries in thepStagesarray. -
pStagesis a pointer to an array ofstageCountVkPipelineShaderStageCreateInfo structures describing the set of the shader stages to be included in the graphics pipeline. -
pVertexInputStateis a pointer to a VkPipelineVertexInputStateCreateInfo structure defining vertex input state for use with vertex shading. -
pInputAssemblyStateis a pointer to a VkPipelineInputAssemblyStateCreateInfo structure which determines input assembly behavior for vertex shading, as described in Drawing Commands. -
pTessellationStateis a pointer to a VkPipelineTessellationStateCreateInfo structure defining tessellation state used by tessellation shaders. -
pViewportStateis a pointer to a VkPipelineViewportStateCreateInfo structure defining viewport state used when rasterization is enabled. -
pRasterizationStateis a pointer to a VkPipelineRasterizationStateCreateInfo structure defining rasterization state. -
pMultisampleStateis a pointer to a VkPipelineMultisampleStateCreateInfo structure defining multisample state used when rasterization is enabled. -
pDepthStencilStateis a pointer to a VkPipelineDepthStencilStateCreateInfo structure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering. -
pColorBlendStateis a pointer to a VkPipelineColorBlendStateCreateInfo structure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering. -
pDynamicStateis a pointer to a VkPipelineDynamicStateCreateInfo structure defining which properties of the pipeline state object are dynamic and can be changed independently of the pipeline state. This can beNULL, which means no state in the pipeline is considered dynamic. -
layoutis the description of binding locations used by both the pipeline and descriptor sets used with the pipeline. -
renderPassis a handle to a render pass object describing the environment in which the pipeline will be used. The pipeline must only be used with a render pass instance compatible with the one provided. See Render Pass Compatibility for more information. -
subpassis the index of the subpass in the render pass where this pipeline will be used. -
basePipelineHandleis a pipeline to derive from. -
basePipelineIndexis an index into thepCreateInfosparameter to use as a pipeline to derive from.
Description
The parameters basePipelineHandle and basePipelineIndex are
described in more detail in Pipeline
Derivatives.
If any shader stage fails to compile,
the compile log will be reported back to the application, and
VK_ERROR_INVALID_SHADER_NV will be generated.
The state required for a graphics pipeline is divided into vertex input state, pre-rasterization shader state, fragment shader state, and fragment output state.
Vertex input state is defined by:
Pre-rasterization shader state is defined by:
-
VkPipelineShaderStageCreateInfo entries for:
-
Vertex shaders
-
Tessellation control shaders
-
Tessellation evaluation shaders
-
Geometry shaders
-
Task shaders
-
Mesh shaders
-
-
Within the VkPipelineLayout, all bindings that affect the specified shader stages
-
VkRenderPass and
subpassparameter
Fragment shader state is defined by:
-
A VkPipelineShaderStageCreateInfo entry for the fragment shader
-
Within the VkPipelineLayout, all bindings that affect the fragment shader
-
VkRenderPass and
subpassparameter
Fragment output state is defined by:
-
The
alphaToCoverageEnableandalphaToOneEnablemembers of VkPipelineMultisampleStateCreateInfo. -
VkRenderPass and
subpassparameter
A complete graphics pipeline always includes
pre-rasterization shader
state, with other subsets included depending on that state.
If the pre-rasterization
shader state includes a vertex shader, then
vertex input state is included
in a complete graphics pipeline.
If the value of
VkPipelineRasterizationStateCreateInfo::rasterizerDiscardEnable
in the pre-rasterization
shader state is VK_FALSE
or the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is
enabled
fragment shader state and
fragment output interface
state is included in a complete graphics pipeline.
Pipelines must be created with a complete set of pipeline state.
-
VUID-VkGraphicsPipelineCreateInfo-flags-00722
Ifflagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid handle to a graphicsVkPipeline -
VUID-VkGraphicsPipelineCreateInfo-flags-00723
Ifflagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis VK_NULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter -
VUID-VkGraphicsPipelineCreateInfo-flags-00724
Ifflagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not -1,basePipelineHandlemust be VK_NULL_HANDLE -
VUID-VkGraphicsPipelineCreateInfo-flags-00725
Ifflagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis not VK_NULL_HANDLE,basePipelineIndexmust be -1 -
VUID-VkGraphicsPipelineCreateInfo-stage-00726
Thestagemember of each element ofpStagesmust be unique -
VUID-VkGraphicsPipelineCreateInfo-pStages-02095
If the pipeline is being created with pre-rasterization shader state the geometric shader stages provided inpStagesmust be either from the mesh shading pipeline (stageisVK_SHADER_STAGE_TASK_BIT_NVorVK_SHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stageisVK_SHADER_STAGE_VERTEX_BIT,VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, orVK_SHADER_STAGE_GEOMETRY_BIT) -
VUID-VkGraphicsPipelineCreateInfo-stage-02096
If the pipeline is being created with pre-rasterization shader state thestagemember of one element ofpStagesmust be eitherVK_SHADER_STAGE_VERTEX_BITorVK_SHADER_STAGE_MESH_BIT_NV -
VUID-VkGraphicsPipelineCreateInfo-stage-00728
Thestagemember of each element ofpStagesmust not beVK_SHADER_STAGE_COMPUTE_BIT -
VUID-VkGraphicsPipelineCreateInfo-pStages-00729
If the pipeline is being created with pre-rasterization shader state andpStagesincludes a tessellation control shader stage, it must include a tessellation evaluation shader stage -
VUID-VkGraphicsPipelineCreateInfo-pStages-00730
If the pipeline is being created with pre-rasterization shader state andpStagesincludes a tessellation evaluation shader stage, it must include a tessellation control shader stage -
VUID-VkGraphicsPipelineCreateInfo-pStages-00731
If the pipeline is being created with pre-rasterization shader state andpStagesincludes a tessellation control shader stage and a tessellation evaluation shader stage,pTessellationStatemust be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pStages-00732
If the pipeline is being created with pre-rasterization shader state andpStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction specifying the type of subdivision in the pipeline -
VUID-VkGraphicsPipelineCreateInfo-pStages-00733
If the pipeline is being created with pre-rasterization shader state andpStagesincludes tessellation shader stages, and the shader code of both stages contain anOpExecutionModeinstruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode -
VUID-VkGraphicsPipelineCreateInfo-pStages-00734
If the pipeline is being created with pre-rasterization shader state andpStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction specifying the output patch size in the pipeline -
VUID-VkGraphicsPipelineCreateInfo-pStages-00735
If the pipeline is being created with pre-rasterization shader state andpStagesincludes tessellation shader stages, and the shader code of both contain anOpExecutionModeinstruction specifying the out patch size in the pipeline, they must both specify the same patch size -
VUID-VkGraphicsPipelineCreateInfo-pStages-00736
If the pipeline is being created with pre-rasterization shader state andpStagesincludes tessellation shader stages, thetopologymember ofpInputAssemblymust beVK_PRIMITIVE_TOPOLOGY_PATCH_LIST -
VUID-VkGraphicsPipelineCreateInfo-topology-00737
If the pipeline is being created with pre-rasterization shader state and thetopologymember ofpInputAssemblyisVK_PRIMITIVE_TOPOLOGY_PATCH_LIST,pStagesmust include tessellation shader stages -
VUID-VkGraphicsPipelineCreateInfo-pStages-00738
If the pipeline is being created with pre-rasterization shader state andpStagesincludes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionModeinstruction specifying an input primitive type that is compatible with the primitive topology specified inpInputAssembly -
VUID-VkGraphicsPipelineCreateInfo-pStages-00739
If the pipeline is being created with pre-rasterization shader state andpStagesincludes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionModeinstruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages -
VUID-VkGraphicsPipelineCreateInfo-pStages-00740
If the pipeline is being created with pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated withPrimitiveId, then the geometry shader code must write to a matching output variable, decorated withPrimitiveId, in all execution paths -
VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264
If the pipeline is being created with pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated withPrimitiveId, then the mesh shader code must write to a matching output variable, decorated withPrimitiveId, in all execution paths -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06038
IfrenderPassis not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined asVK_ATTACHMENT_UNUSEDinsubpass -
VUID-VkGraphicsPipelineCreateInfo-pStages-00742
If the pipeline is being created with pre-rasterization shader state and multiple pre-rasterization shader stages are included inpStages, the shader code for the entry points identified by thosepStagesand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter -
VUID-VkGraphicsPipelineCreateInfo-None-04889
If the pipeline is being created with pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06039
IfrenderPassis not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, andsubpassuses a depth/stencil attachment inrenderPasswith a read-only layout for the depth aspect in the VkAttachmentReference defined bysubpass, thedepthWriteEnablemember ofpDepthStencilStatemust beVK_FALSE -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06040
IfrenderPassis not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, andsubpassuses a depth/stencil attachment inrenderPasswith a read-only layout for the stencil aspect in the VkAttachmentReference defined bysubpass, thefailOp,passOpanddepthFailOpmembers of each of thefrontandbackmembers ofpDepthStencilStatemust beVK_STENCIL_OP_KEEP -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06041
IfrenderPassis not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not containVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beVK_FALSE -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06042
IfrenderPassis not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the subpass uses color attachments, theattachmentCountmember ofpColorBlendStatemust be equal to thecolorAttachmentCountused to createsubpass -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_VIEWPORTorVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, thepViewportsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState->viewportCountvalidVkViewportstructures -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SCISSORorVK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, thepScissorsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState->scissorCountVkRect2Dstructures -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749
If the pipeline is being created with pre-rasterization shader state, and the wide lines feature is not enabled, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_LINE_WIDTH, thelineWidthmember ofpRasterizationStatemust be1.0 -
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750
If the pipeline is being created with pre-rasterization shader state, and therasterizerDiscardEnablemember ofpRasterizationStateisVK_FALSE,pViewportStatemust be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892
If the pipeline is being created with pre-rasterization shader state, and the graphics pipeline state was created with theVK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEdynamic state enabled,pViewportStatemust be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751
If the pipeline is being created with fragment shader state,pMultisampleStatemust be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06043
IfrenderPassis not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, andsubpassuses a depth/stencil attachment,pDepthStencilStatemust be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06044
IfrenderPassis not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, andsubpassuses color attachments,pColorBlendStatemust be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754
If the pipeline is being created with pre-rasterization shader state, the depth bias clamping feature is not enabled, no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_DEPTH_BIAS, and thedepthBiasEnablemember ofpRasterizationStateisVK_TRUE, thedepthBiasClampmember ofpRasterizationStatemust be0.0 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510
If the pipeline is being created with fragment shader state, and theVK_EXT_depth_range_unrestrictedextension is not enabled and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_DEPTH_BOUNDS, and thedepthBoundsTestEnablemember ofpDepthStencilStateisVK_TRUE, theminDepthBoundsandmaxDepthBoundsmembers ofpDepthStencilStatemust be between0.0and1.0, inclusive -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521
If the pipeline is being created with fragment shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationGridSize.widthmust evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equalingrasterizationSamples -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522
If the pipeline is being created with fragment shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationGridSize.heightmust evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equalingrasterizationSamples -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523
If the pipeline is being created with fragment shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamples -
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524
If the pipeline is being created with fragment shader state, and thesampleLocationsEnablemember of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in thepNextchain ofpMultisampleStateisVK_TRUE, the fragment shader code must not statically use the extended instructionInterpolateAtSample -
VUID-VkGraphicsPipelineCreateInfo-layout-00756
layoutmust be consistent with all shaders specified inpStages -
VUID-VkGraphicsPipelineCreateInfo-subpass-00757
If the pipeline is being created with fragment shader state, and neither theVK_AMD_mixed_attachment_samplesnor theVK_NV_framebuffer_mixed_samplesextensions are enabled, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count for those subpass attachments -
VUID-VkGraphicsPipelineCreateInfo-subpass-01505
If the pipeline is being created with fragment shader state, and theVK_AMD_mixed_attachment_samplesextension is enabled, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust equal the maximum of the sample counts of those subpass attachments -
VUID-VkGraphicsPipelineCreateInfo-subpass-01411
If the pipeline is being created with fragment shader state, and theVK_NV_framebuffer_mixed_samplesextension is enabled, and ifsubpasshas a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count of the depth/stencil attachment -
VUID-VkGraphicsPipelineCreateInfo-subpass-01412
If the pipeline is being created with fragment shader state, and theVK_NV_framebuffer_mixed_samplesextension is enabled, and ifsubpasshas any color attachments, then therasterizationSamplesmember ofpMultisampleStatemust be greater than or equal to the sample count for those subpass attachments -
VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722
If the pipeline is being created with fragment shader state, and theVK_NV_coverage_reduction_modeextension is enabled, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, therasterizationSamplesmember ofpMultisampleStateand the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned byvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV -
VUID-VkGraphicsPipelineCreateInfo-subpass-00758
If the pipeline is being created with fragment shader state andsubpassdoes not use any color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust follow the rules for a zero-attachment subpass -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06046
IfrenderPassis a valid renderPass,subpassmust be a valid subpass withinrenderPass -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06047
IfrenderPassis a valid renderPass, the pipeline is being created with pre-rasterization shader state, and therenderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewTessellationShaderis not enabled, thenpStagesmust not include tessellation shaders -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06048
IfrenderPassis a valid renderPass, the pipeline is being created with pre-rasterization shader state, and therenderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewGeometryShaderis not enabled, thenpStagesmust not include a geometry shader -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06049
IfrenderPassis a valid renderPass, the pipeline is being created with pre-rasterization shader state, and therenderPasshas multiview enabled andsubpasshas more than one bit set in the view mask, shaders in the pipeline must not write to theLayerbuilt-in output -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06050
IfrenderPassis a valid renderPass and the pipeline is being created with pre-rasterization shader state, and therenderPasshas multiview enabled, then all shaders must not include variables decorated with theLayerbuilt-in decoration in their interfaces -
VUID-VkGraphicsPipelineCreateInfo-flags-00764
flagsmust not contain theVK_PIPELINE_CREATE_DISPATCH_BASEflag -
VUID-VkGraphicsPipelineCreateInfo-pStages-01565
If the pipeline is being created with fragment shader state and an input attachment was referenced by anaspectMaskatrenderPasscreation time, the fragment shader must only read from the aspects that were specified for that input attachment -
VUID-VkGraphicsPipelineCreateInfo-layout-01688
The number of resources inlayoutaccessible to each shader stage that is used by the pipeline must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and theviewportWScalingEnablemember of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in thepNextchain ofpViewportState, isVK_TRUE, thepViewportWScalingsmember of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCountvalid VkViewportWScalingNV structures -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and ifpViewportState->pNextchain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if itsexclusiveScissorCountmember is not0, then itspExclusiveScissorsmember must be a valid pointer to an array ofexclusiveScissorCountVkRect2D structures -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and ifpViewportState->pNextchain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then itspShadingRatePalettesmember must be a valid pointer to an array ofviewportCountvalid VkShadingRatePaletteNV structures -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058
If the pipeline is being created with pre-rasterization shader state, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and ifpNextchain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if itsdiscardRectangleCountmember is not0, then itspDiscardRectanglesmember must be a valid pointer to an array ofdiscardRectangleCountVkRect2D structures -
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910
If the pipeline is being created with vertex input state, andVK_DYNAMIC_STATE_VERTEX_INPUT_EXTis not set,pVertexInputStatemust be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pStages-02098
If the pipeline is being created with vertex input state,pInputAssemblyStatemust be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pStages-02317
If the pipeline is being created with pre-rasterization shader state, theXfbexecution mode can be specified by no more than one shader stage inpStages -
VUID-VkGraphicsPipelineCreateInfo-pStages-02318
If the pipeline is being created with pre-rasterization shader state, and any shader stage inpStagesspecifiesXfbexecution mode it must be the last pre-rasterization shader stage -
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319
If the pipeline is being created with pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStreamvalue other than zero is specified, all variables in the output interface of the entry point being compiled decorated withPosition,PointSize,ClipDistance, orCullDistancemust be decorated with identicalStreamvalues that match therasterizationStream -
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320
If the pipeline is being created with pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStreamis zero, or not specified, all variables in the output interface of the entry point being compiled decorated withPosition,PointSize,ClipDistance, orCullDistancemust be decorated with aStreamvalue of zero, or must not specify theStreamdecoration -
VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321
If the pipeline is being created with pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses theGeometryStreamscapability, thenVkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreamsfeature must be enabled -
VUID-VkGraphicsPipelineCreateInfo-None-02322
If the pipeline is being created with pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with aXfbexecution mode -
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766
If the pipeline is being created with pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, thelineRasterizationModemember of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in thepNextchain ofpRasterizationStateisVK_LINE_RASTERIZATION_MODE_BRESENHAM_EXTorVK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then thealphaToCoverageEnable,alphaToOneEnable, andsampleShadingEnablemembers ofpMultisampleStatemust all beVK_FALSE -
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767
If the pipeline is being created with pre-rasterization shader state, thestippledLineEnablemember of VkPipelineRasterizationLineStateCreateInfoEXT isVK_TRUE, and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then thelineStippleFactormember of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256] -
VUID-VkGraphicsPipelineCreateInfo-flags-03371
flagsmust not includeVK_PIPELINE_CREATE_LIBRARY_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03372
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03373
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03374
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03375
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03376
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03377
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-03577
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR -
VUID-VkGraphicsPipelineCreateInfo-flags-04947
flagsmust not includeVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379
If the pipeline is being created with pre-rasterization shader state, andVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNTis included in thepDynamicStatesarray thenviewportCountmust be zero -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380
If the pipeline is being created with pre-rasterization shader state, andVK_DYNAMIC_STATE_SCISSOR_WITH_COUNTis included in thepDynamicStatesarray thenscissorCountmust be zero -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132
If the pipeline is being created with pre-rasterization shader state, andVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNTis included in thepDynamicStatesarray thenVK_DYNAMIC_STATE_VIEWPORTmust not be present -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133
If the pipeline is being created with pre-rasterization shader state, andVK_DYNAMIC_STATE_SCISSOR_WITH_COUNTis included in thepDynamicStatesarray thenVK_DYNAMIC_STATE_SCISSORmust not be present -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869
If the extendedDynamicState2LogicOp feature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toVK_DYNAMIC_STATE_LOGIC_OP_EXT -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870
If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toVK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT -
VUID-VkGraphicsPipelineCreateInfo-flags-02877
IfflagsincludesVK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then theVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommandsfeature must be enabled -
VUID-VkGraphicsPipelineCreateInfo-flags-02966
If the pipeline is being created with pre-rasterization shader state andflagsincludesVK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specifyXfbexecution mode -
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878
If thepipelineCreationCacheControlfeature is not enabled,flagsmust not includeVK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BITorVK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be greater than or equal to1 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be greater than or equal to1 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be a power-of-two value -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be a power-of-two value -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be less than or equal to4 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be less than or equal to4 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and thepipelineFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthand VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust both be equal to1 -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and theprimitiveFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502
If the pipeline is being created with pre-rasterization shader state or fragment shader state andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and theattachmentFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503
If the pipeline is being created with pre-rasterization shader state and theprimitiveFragmentShadingRateWithMultipleViewportslimit is not supported,VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNTis not included inpDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCountis greater than1, entry points specified inpStagesmust not write to thePrimitiveShadingRateKHRbuilt-in -
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504
If the pipeline is being created with pre-rasterization shader state and theprimitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and entry points specified inpStageswrite to theViewportIndexbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in -
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505
If the pipeline is being created with pre-rasterization shader state and theprimitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and entry points specified inpStageswrite to theViewportMaskNVbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in -
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506
If the pipeline is being created with pre-rasterization shader state or fragment shader state, thefragmentShadingRateNonTrivialCombinerOpslimit is not supported, andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOpsmust beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorVK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569
If the pipeline is being created with pre-rasterization shader state or fragment shader state, andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and thefragmentShadingRateEnumsfeature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateTypemust be equal toVK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570
If the pipeline is being created with pre-rasterization shader state or fragment shader state, andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and thepipelineFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust be equal toVK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571
If the pipeline is being created with pre-rasterization shader state or fragment shader state, andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and theprimitiveFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572
If the pipeline is being created with pre-rasterization shader state or fragment shader state, andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and theattachmentFragmentShadingRatefeature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573
If the pipeline is being created with pre-rasterization shader state or fragment shader state, and thefragmentShadingRateNonTrivialCombinerOpslimit is not supported andVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOpsmust beVK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorVK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR -
VUID-VkGraphicsPipelineCreateInfo-None-04574
If the pipeline is being created with pre-rasterization shader state or fragment shader state, and the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust not be equal toVK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, orVK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV -
VUID-VkGraphicsPipelineCreateInfo-None-04575
If the pipeline is being created with pre-rasterization shader state or fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust not be equal toVK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578
All elements of thepDynamicStatesmember ofpDynamicStatemust not beVK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807
If the pipeline is being created with pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toVK_DYNAMIC_STATE_VERTEX_INPUT_EXT -
VUID-VkGraphicsPipelineCreateInfo-None-04893
The pipeline must be created with a complete set of state -
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800
If the colorWriteEnable feature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toVK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT -
VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899
If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description containsVK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equalrasterizationSamples -
VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900
If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description containsVK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, thensampleShadingEnablemust be false -
VUID-VkGraphicsPipelineCreateInfo-flags-04901
IfflagsincludesVK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain -
VUID-VkGraphicsPipelineCreateInfo-flags-04902
IfflagsincludesVK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and ifpResolveAttachmentsis notNULL, then each resolve attachment must beVK_ATTACHMENT_UNUSED -
VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06052
If thedynamicRenderingfeature is not enabled,renderPassmust not be VK_NULL_HANDLE -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06053
IfrenderPassis VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are notVK_FORMAT_UNDEFINED,pDepthStencilStatemust be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06054
IfrenderPassis VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to0,pColorBlendStatemust be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06055
IfrenderPassis VK_NULL_HANDLE and the pipeline is being created with fragment output interface state,pColorBlendState->attachmentCountmust be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06056
IfrenderPassis VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06057
IfrenderPassis VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, theviewMaskmember of a VkPipelineRenderingCreateInfo structure included in thepNextchain is not0, and themultiviewTessellationShaderfeature is not enabled, thenpStagesmust not include tessellation shaders -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06058
IfrenderPassis VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, theviewMaskmember of a VkPipelineRenderingCreateInfo structure included in thepNextchain is not0, and themultiviewGeometryShaderfeature is not enabled, thenpStagesmust not include a geometry shader -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06059
IfrenderPassis VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and theviewMaskmember of a VkPipelineRenderingCreateInfo structure included in thepNextchain is not0, shaders inpStagesmust not include variables decorated with theLayerbuilt-in decoration in their interfaces -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06060
If the pipeline is being created with fragment output interface state andrenderPassis VK_NULL_HANDLE,pColorBlendState->attachmentCountmust be equal to thecolorAttachmentCountmember of the VkPipelineRenderingCreateInfo structure included in thepNextchain -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06061
If the pipeline is being created with fragment shader state andrenderPassis VK_NULL_HANDLE, fragment shaders inpStagesmust not include theInputAttachmentcapability -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06062
If the pipeline is being created with fragment output interface state andrenderPassis VK_NULL_HANDLE, for each color attachment format defined by thepColorAttachmentFormatsmember of VkPipelineRenderingCreateInfo, if its potential format features do not containVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beVK_FALSE -
VUID-VkGraphicsPipelineCreateInfo-renderPass-06063
If the pipeline is being created with fragment output interface state andrenderPassis VK_NULL_HANDLE, if thepNextchain includes VkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV, thecolorAttachmentCountmember of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCount -
VUID-VkGraphicsPipelineCreateInfo-pStages-06466
IfpStagesincludes a fragment shader stage, and the fragment shader code enables early fragment tests, theflagsmember of VkPipelineDepthStencilStateCreateInfo must not includeVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARMorVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM -
VUID-VkGraphicsPipelineCreateInfo-flags-06482
If the pipeline is being created with fragment output interface state and theflagsmember of VkPipelineColorBlendStateCreateInfo includesVK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,renderpassmust not be VK_NULL_HANDLE -
VUID-VkGraphicsPipelineCreateInfo-flags-06483
If the pipeline is being created with fragment output interface state and theflagsmember of VkPipelineDepthStencilStateCreateInfo includesVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARMorVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,renderpassmust not be VK_NULL_HANDLE -
VUID-VkGraphicsPipelineCreateInfo-flags-06484
If the pipeline is being created with fragment output interface state and theflagsmember of VkPipelineColorBlendStateCreateInfo includesVK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARMsubpassmust have been created withVK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM -
VUID-VkGraphicsPipelineCreateInfo-flags-06485
If the pipeline is being created with fragment output interface state and theflagsmember of VkPipelineDepthStencilStateCreateInfo includesVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,subpassmust have been created withVK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM -
VUID-VkGraphicsPipelineCreateInfo-flags-06486
If the pipeline is being created with fragment output interface state and theflagsmember of VkPipelineDepthStencilStateCreateInfo includesVK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,subpassmust have been created withVK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
-
VUID-VkGraphicsPipelineCreateInfo-sType-sType
sTypemust beVK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO -
VUID-VkGraphicsPipelineCreateInfo-pNext-pNext
EachpNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineRenderingCreateInfo, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV -
VUID-VkGraphicsPipelineCreateInfo-sType-unique
ThesTypevalue of each struct in thepNextchain must be unique -
VUID-VkGraphicsPipelineCreateInfo-flags-parameter
flagsmust be a valid combination of VkPipelineCreateFlagBits values -
VUID-VkGraphicsPipelineCreateInfo-pStages-parameter
pStagesmust be a valid pointer to an array ofstageCountvalid VkPipelineShaderStageCreateInfo structures -
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter
pRasterizationStatemust be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter
IfpDynamicStateis notNULL,pDynamicStatemust be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure -
VUID-VkGraphicsPipelineCreateInfo-layout-parameter
layoutmust be a valid VkPipelineLayout handle -
VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter
IfrenderPassis not VK_NULL_HANDLE,renderPassmust be a valid VkRenderPass handle -
VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylength
stageCountmust be greater than0 -
VUID-VkGraphicsPipelineCreateInfo-commonparent
Each ofbasePipelineHandle,layout, andrenderPassthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
See Also
VK_VERSION_1_0, VkPipeline, VkPipelineColorBlendStateCreateInfo, VkPipelineCreateFlags, VkPipelineDepthStencilStateCreateInfo, VkPipelineDynamicStateCreateInfo, VkPipelineInputAssemblyStateCreateInfo, VkPipelineLayout, VkPipelineMultisampleStateCreateInfo, VkPipelineRasterizationStateCreateInfo, VkPipelineShaderStageCreateInfo, VkPipelineTessellationStateCreateInfo, VkPipelineVertexInputStateCreateInfo, VkPipelineViewportStateCreateInfo, VkRenderPass, VkStructureType, vkCreateGraphicsPipelines
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.