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 ERROR_INVALID_SHADER_NV will be generated.
With VK_EXT_extended_dynamic_state3, it is possible that many of the VkGraphicsPipelineCreateInfo members above can be NULL because all their state is dynamic and therefore ignored. This is optional so the application can still use a valid pointer if it needs to set the pNext or flags fields to specify state for other extensions.
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:
If this pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and its pStages includes a vertex shader, this state must be specified to create a complete graphics pipeline.
If a pipeline includes GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT in VkGraphicsPipelineLibraryCreateInfoEXT::flags either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.
Pre-rasterization shader state is defined by:
VkPipelineShaderStageCreateInfo entries for:
VkPipelineLayout, all descriptor sets with pre-rasterization shader bindings if PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT was specified.
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT was not specified, the full pipeline layout must be specified.VkPipelineViewportStateCreateInfoVkPipelineRasterizationStateCreateInfoVkPipelineTessellationStateCreateInfoVkRenderPass and subpass parameterviewMask parameter of VkPipelineRenderingCreateInfo (formats are ignored)VkPipelineDiscardRectangleStateCreateInfoEXTVkPipelineFragmentShadingRateStateCreateInfoKHRThis state must be specified to create a complete graphics pipeline.
If either the pNext chain includes a VkGraphicsPipelineLibraryCreateInfoEXT structure with GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT included in flags, or it is not specified and would default to include that value, this state must be specified in the pipeline.
Fragment shader state is defined by:
VkPipelineShaderStageCreateInfo entry for the fragment shaderVkPipelineLayout, all descriptor sets with fragment shader bindings if PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT was specified.
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT was not specified, the full pipeline layout must be specified.VkPipelineMultisampleStateCreateInfo if sample shading is enabled or renderpass is not NULL_HANDLEVkPipelineDepthStencilStateCreateInfoVkRenderPass and subpass parameterviewMask parameter of VkPipelineRenderingCreateInfo (formats are ignored)VkPipelineFragmentShadingRateStateCreateInfoKHRVkPipelineFragmentShadingRateEnumStateCreateInfoNVVkPipelineRepresentativeFragmentTestStateCreateInfoNVPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR flagPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT flagIf a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable is set to FALSE or DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline.
If a pipeline includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT in VkGraphicsPipelineLibraryCreateInfoEXT::flags either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.
Fragment output state is defined by:
VkPipelineColorBlendStateCreateInfoVkRenderPass and subpass parameterVkPipelineMultisampleStateCreateInfoVkPipelineRenderingCreateInfoVkAttachmentSampleCountInfoAMDVkAttachmentSampleCountInfoNVPIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT and PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT flagsIf a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable is set to FALSE or DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline.
If a pipeline includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT in VkGraphicsPipelineLibraryCreateInfoEXT::flags either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.
Dynamic state values set via pDynamicState must be ignored if the state they correspond to is not otherwise statically set by one of the state subsets used to create the pipeline. Additionally, setting dynamic state values must not modify whether state in a linked library is static or dynamic; this is set and unchangeable when the library is created. For example, if a pipeline only included pre-rasterization shader state, then any dynamic state value corresponding to depth or stencil testing has no effect. Any linked library that has dynamic state enabled that same dynamic state must also be enabled in all the other linked libraries to which that dynamic state applies.
A complete graphics pipeline always includes pre-rasterization shader state, with other subsets included depending on that state as specified in the above sections.
If different subsets are linked together with pipeline layouts created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, the final effective pipeline layout is effectively the union of the linked pipeline layouts. When binding descriptor sets for this pipeline, the pipeline layout used must be compatible with this union. This pipeline layout can be overridden when linking with PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT by providing a VkPipelineLayout that is compatible with this union other than PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, or when linking without PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT by providing a VkPipelineLayout that is fully compatible with this union.
If a VkPipelineCreateFlags2CreateInfoKHR structure is present in the pNext chain, VkPipelineCreateFlags2CreateInfoKHR::flags from that structure is used instead of flags from this structure.
flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid graphics VkPipeline handleflags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameterflags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be NULL_HANDLElayout must match both the shader stage and rangelayout must match the shader stageDESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor typelayout must match the descriptor countpStages must be either from the mesh shading pipeline (stage is SHADER_STAGE_TASK_BIT_EXT or SHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stage is SHADER_STAGE_VERTEX_BIT, SHADER_STAGE_TESSELLATION_CONTROL_BIT, SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or SHADER_STAGE_GEOMETRY_BIT)stage member of one element of pStages must be either SHADER_STAGE_VERTEX_BIT or SHADER_STAGE_MESH_BIT_EXTSHADER_STAGE_TASK_BIT_EXT or SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV Execution Model or the TaskEXT and MeshEXT Execution Model, but must not use bothpStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stagepStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stagepStages includes a tessellation control shader stage, and the VK_EXT_extended_dynamic_state3 extension is not enabled or the DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not set, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structurepTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structurepStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipelinepStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision modepStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipelinepStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction specifying the out patch size in the pipeline, they must both specify the same patch sizepStages includes tessellation shader stages, and either DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is FALSE, the topology member of pInputAssembly must be PRIMITIVE_TOPOLOGY_PATCH_LISTtopology member of pInputAssembly is PRIMITIVE_TOPOLOGY_PATCH_LIST, and either DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is FALSE, then pStages must include tessellation shader stagesTessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to if maintenance5 is not enabledVertex Execution Model and no TessellationEvaluation or Geometry Execution Model, and the topology member of pInputAssembly is PRIMITIVE_TOPOLOGY_POINT_LIST, and either DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is FALSE, a PointSize decorated variable must be written to if maintenance5 is not enabledmaintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variableTessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written toGeometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabledGeometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written topStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology specified in pInputAssemblypStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stagesPrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution pathsPrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution pathsrenderPass is not 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 as ATTACHMENT_UNUSED in subpasspStages, the shader code for the entry points identified by those pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapterrenderPass is not 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 contain FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be FALSErenderPass is not NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpasspViewportState→pViewports is not dynamic, then pViewportState→pViewports must be a valid pointer to an array of pViewportState→viewportCount valid VkViewport structurespViewportState→pScissors is not dynamic, then pViewportState→pScissors must be a valid pointer to an array of pViewportState→scissorCount VkRect2D structureswideLines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is FALSE, and either the VK_EXT_extended_dynamic_state3 extension is not enabled, or either the DYNAMIC_STATE_VIEWPORT_WITH_COUNT or DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structurepViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structureDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structureVK_EXT_extended_dynamic_state3 extension is not enabled or any of the DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, DYNAMIC_STATE_SAMPLE_MASK_EXT, or DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structurepMultisampleState is not NULL is must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structureVkPipelineMultisampleStateCreateInfo::alphaToCoverageEnable is not ignored and is TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0renderPass is not NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state3 extension is not enabled or, any of the DYNAMIC_STATE_DEPTH_TEST_ENABLE, DYNAMIC_STATE_DEPTH_WRITE_ENABLE, DYNAMIC_STATE_DEPTH_COMPARE_OP, DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, DYNAMIC_STATE_STENCIL_TEST_ENABLE, DYNAMIC_STATE_STENCIL_OP, or DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurepDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurerenderPass is not NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, DYNAMIC_STATE_LOGIC_OP_EXT, DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structuredepthBiasClamp feature is not enabled, no element of the pDynamicStates member of pDynamicState is DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is TRUE, the depthBiasClamp member of pRasterizationState must be 0.0VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusiverasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by GetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamplesrasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable the included in the pNext chain of pMultisampleState is TRUE or DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by GetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamplesrasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is TRUE or DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamplessampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSampleVK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachmentsVK_AMD_mixed_attachment_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachmentsrenderPass is not NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a VkMultisampledRenderToSingleSampledInfoEXT structure included in the VkSubpassDescription2::pNext chain with multisampledRenderToSingleSampledEnable equal to TRUE, then the rasterizationSamples member of pMultisampleState must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamplesVK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachmentVK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachmentsVK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVrasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpassrenderPass is not NULL_HANDLE, subpass must be a valid subpass within renderPassrenderPass is not NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must not include tessellation shadersrenderPass is not NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shaderrenderPass is not NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in outputrenderPass is not NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfacesrenderPass is not NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the ViewMask built-in decoration in their interfacesrenderPass is not NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shaderflags must not contain the PIPELINE_CREATE_DISPATCH_BASE flagaspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachmentlayout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResourcespDynamicStates member of pDynamicState is DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structurespDynamicStates member of pDynamicState is DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState→pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structuresDYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extensionpDynamicStates member of pDynamicState is DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState→pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structurespDynamicStates member of pDynamicState is DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structuresDYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extensionDYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extensionpVertexInputState is not dynamic, then pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structurepVertexInputState is not dynamic, then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription::locationpVertexInputState is not dynamic, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription::formatpVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bitpVertexInputState is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription::format must have a 64-bit componentpVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the formatVK_EXT_extended_dynamic_state3 extension is not enabled, or either DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted is FALSE, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structurepInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structureXfb execution mode can be specified by no more than one shader stage in pStagespStages specifies Xfb execution mode it must be the last pre-rasterization shader stageVkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStreamVkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decorationGeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabledXfb execution modepMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is LINE_RASTERIZATION_MODE_BRESENHAM_EXT or LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be FALSEstippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is TRUE, and no element of the pDynamicStates member of pDynamicState is DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]flags must not include PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRflags must not include PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVextendedDynamicState feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_CULL_MODE, DYNAMIC_STATE_FRONT_FACE, DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, DYNAMIC_STATE_VIEWPORT_WITH_COUNT, DYNAMIC_STATE_SCISSOR_WITH_COUNT, DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, DYNAMIC_STATE_DEPTH_TEST_ENABLE, DYNAMIC_STATE_DEPTH_WRITE_ENABLE, DYNAMIC_STATE_DEPTH_COMPARE_OP, DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, DYNAMIC_STATE_STENCIL_TEST_ENABLE, or DYNAMIC_STATE_STENCIL_OPDYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zeroDYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zeroDYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then DYNAMIC_STATE_VIEWPORT must not be presentDYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then DYNAMIC_STATE_SCISSOR must not be presentpDynamicStates member of pDynamicState set to DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, or DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDEextendedDynamicState2 feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_DEPTH_BIAS_ENABLE, DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEextendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_LOGIC_OP_EXTextendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTpDynamicStates member of pDynamicState set to DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTflags includes PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabledflags includes PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution modeVkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0pipelineCreationCacheControl feature is not enabled, flags must not include PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BITpipelineProtectedAccess feature is not enabled, flags must not include PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXTflags must not include both PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT and PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXTDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRprimitiveFragmentShadingRateWithMultipleViewports limit is not supported, DYNAMIC_STATE_VIEWPORT_WITH_COUNT is not included in pDynamicState→pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-inprimitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-inprimitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-infragmentShadingRateNonTrivialCombinerOps limit is not supported, and DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHRDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be a valid VkFragmentShadingRateTypeNV valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be a valid VkFragmentShadingRateNV valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR valueDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NVDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NVDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRfragmentShadingRateNonTrivialCombinerOps limit is not supported and DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState→pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHRsupersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NVnoInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NVpDynamicStates member of pDynamicState must not be DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHRvertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_VERTEX_INPUT_EXTpDynamicStates member of pDynamicState set to DYNAMIC_STATE_VERTEX_INPUT_EXTcolorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXTVK_QCOM_render_pass_shader_resolve extension is enabled, rasterizationSamples is not dynamic, and if subpass has any input attachments, and if the subpass description contains SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamplesVK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be falseflags includes SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chainflags includes SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be ATTACHMENT_UNUSEDrenderPass must be NULL_HANDLE or a valid render pass objectdynamicRendering feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be NULL_HANDLEmultiview feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0renderPass is NULL_HANDLE, the index of the most significant bit in VkPipelineRenderingCreateInfo::viewMask must be less than maxMultiviewViewCountrenderPass is NULL_HANDLE, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not 0, VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat valuesrenderPass is NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat valuerenderPass is NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not FORMAT_UNDEFINED, that format must be a format with potential format features that include FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NVrenderPass is NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat valuerenderPass is NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat valuerenderPass is NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not FORMAT_UNDEFINED, it must be a format with potential format features that include FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BITrenderPass is NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not FORMAT_UNDEFINED, it must be a format with potential format features that include FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BITrenderPass is NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not FORMAT_UNDEFINED, it must be a format that includes a depth componentrenderPass is NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not FORMAT_UNDEFINED, it must be a format that includes a stencil componentrenderPass is NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormatrenderPass is NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not FORMAT_UNDEFINED, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the DYNAMIC_STATE_DEPTH_TEST_ENABLE, DYNAMIC_STATE_DEPTH_WRITE_ENABLE, DYNAMIC_STATE_DEPTH_COMPARE_OP, DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, DYNAMIC_STATE_STENCIL_TEST_ENABLE, DYNAMIC_STATE_STENCIL_OP, or DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurepDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurerenderPass is NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the DYNAMIC_STATE_DEPTH_TEST_ENABLE, DYNAMIC_STATE_DEPTH_WRITE_ENABLE, DYNAMIC_STATE_DEPTH_COMPARE_OP, DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, DYNAMIC_STATE_STENCIL_TEST_ENABLE, DYNAMIC_STATE_STENCIL_OP, or DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurepDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structurerenderPass is NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, DYNAMIC_STATE_LOGIC_OP_EXT, DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structurepColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structurerenderPass is NULL_HANDLE and the pipeline is being created with fragment output interface state, pColorBlendState→attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCountrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shadersrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shaderrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in outputrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfacesrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the ViewIndex built-in decoration in their interfacesrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shaderrenderPass is NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capabilityrenderPass is not NULL_HANDLE, fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT, or TileImageStencilReadAccessEXT capabilitiesrenderPass is NULL_HANDLE, for each color attachment format defined by the pColorAttachmentFormats member of VkPipelineRenderingCreateInfo, if its potential format features do not contain FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be FALSErenderPass is NULL_HANDLE, if the pNext chain includes VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV, the colorAttachmentCount member of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCountpStages includes a fragment shader stage, and the fragment shader declares the EarlyFragmentTests execution mode, the flags member of VkPipelineDepthStencilStateCreateInfo must not include PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTflags member of VkPipelineColorBlendStateCreateInfo includes PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, renderpass must not be NULL_HANDLEflags member of VkPipelineDepthStencilStateCreateInfo includes PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, renderpass must not be NULL_HANDLEpColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits valuesdepthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits valueflags member of VkPipelineColorBlendStateCreateInfo includes PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT subpass must have been created with SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXTflags member of VkPipelineDepthStencilStateCreateInfo includes PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, subpass must have been created with SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTflags member of VkPipelineDepthStencilStateCreateInfo includes PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, subpass must have been created with SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTVkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCountrenderPass is NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be TRUEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both this pipeline and the library must be equalVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equalVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both this pipeline and the library must be equalVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equalpStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structuresVK_EXT_extended_dynamic_state3 extension is not enabled, or any of the DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, DYNAMIC_STATE_SAMPLE_MASK_EXT, or DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are not set, or alphaToOne is enabled on the device and DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structurepRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structurelayout must be a valid VkPipelineLayout handlerenderPass is not NULL_HANDLE, renderPass must be a valid VkRenderPass handlestageCount must be greater than 0graphicsPipelineLibrary feature is not enabled, flags must not include PIPELINE_CREATE_LIBRARY_BIT_KHRflags must not include PIPELINE_CREATE_LIBRARY_BIT_KHRflags includes PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXTflags includes PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXTVkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibrariesVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, and layout was not created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by this pipeline and the library must be identically definedVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was not created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by each library must be identically definedVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by the library must also have been created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by both libraries must have been created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which layout was created with that are not NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the library’s layoutVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which either layout was created with that are not NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the other library’s layoutVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be identically definedVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically definedVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically definedVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically definedVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not be NULL_HANDLEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not be NULL_HANDLEVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not be NULL_HANDLEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library’s layout must not have shader bindings for shaders in the other subsetVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library’s layout was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline’s layout must not have shader bindings for shaders in the other subsetVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library’s layout was NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library’s layout must not have shader bindings for shaders in the other subsetVkGraphicsPipelineLibraryCreateInfoEXT::flags includes both GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must have been created with no elements of the pSetLayouts array set to NULL_HANDLEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and pRasterizationState→rasterizerDiscardEnable is TRUE, layout must have been created with no elements of the pSetLayouts array set to NULL_HANDLEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass must be equal to that used to create the libraryVkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass used to create each library must be identicalrenderpass is not NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the libraryrenderpass is NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be NULL_HANDLEVkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass is NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::viewMask used by this pipeline and that specified by the library must be identicalVkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass was NULL_HANDLE for both libraries, the value of VkPipelineRenderingCreateInfo::viewMask set by each library must be identicalVkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the renderPass objects used to create each library must be compatible or all equal to NULL_HANDLEpMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structurerenderpass is not NULL_HANDLE, then pMultisampleState must not be NULLInput storage class with Sample, then pMultisampleState must not be NULLVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the libraryVkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the libraryVkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, the pMultisampleState used to create each library must be identically definedVkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState→sampleShading equal TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically definedVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState→sampleShading is TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleStateVkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identicalVkPipelineLibraryCreateInfoKHR::pLibraries includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identicalVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structuresVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, DYNAMIC_STATE_SAMPLE_MASK_EXT, or DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are not set, or alphaToOne is enabled on the device and DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structurepRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structureVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handleVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not NULL_HANDLE, renderPass must be a valid VkRenderPass handleVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, if flags includes PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created with PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRVkPipelineLibraryCreateInfoKHR::pLibraries includes more than one library, and any library was created with PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created with PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRVkPipelineLibraryCreateInfoKHR::pLibraries includes at least one library, VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, and any library was created with PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, flags must include PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRVkPipelineLayout must be a valid pipeline layoutVkPipelineLayout created without PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the layouts in those librariesflags includes PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTflags does not include PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layoutsconservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is PRIMITIVE_TOPOLOGY_POINT_LIST, PRIMITIVE_TOPOLOGY_LINE_LIST, or PRIMITIVE_TOPOLOGY_LINE_STRIP, and either DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is FALSE, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXTconservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either the OutputPoints or OutputLineStrip execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXTconservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either the OutputPoints or OutputLinesNV execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXTpStages must not have stage set to SHADER_STAGE_FRAGMENT_BITpStages must not have stage set to a shader stage which participates in pre-rasterizationpStages must have a stage set to a shader stage which participates in fragment shader state or pre-rasterization shader statestage must not be set in more than one element of pStagesextendedDynamicState3TessellationDomainOrigin feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXTextendedDynamicState3DepthClampEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXTextendedDynamicState3PolygonMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_POLYGON_MODE_EXTextendedDynamicState3RasterizationSamples feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTextendedDynamicState3SampleMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_SAMPLE_MASK_EXTextendedDynamicState3AlphaToCoverageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTextendedDynamicState3AlphaToOneEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTextendedDynamicState3LogicOpEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_LOGIC_OP_ENABLE_EXTextendedDynamicState3ColorBlendEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTextendedDynamicState3ColorBlendEquation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXTextendedDynamicState3ColorWriteMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COLOR_WRITE_MASK_EXTextendedDynamicState3RasterizationStream feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_RASTERIZATION_STREAM_EXTextendedDynamicState3ConservativeRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXTextendedDynamicState3ExtraPrimitiveOverestimationSize feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXTextendedDynamicState3DepthClipEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXTextendedDynamicState3SampleLocationsEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTextendedDynamicState3ColorBlendAdvanced feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTextendedDynamicState3ProvokingVertexMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXTextendedDynamicState3LineRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTextendedDynamicState3LineStippleEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTextendedDynamicState3DepthClipNegativeOneToOne feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXTextendedDynamicState3ViewportWScalingEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NVextendedDynamicState3ViewportSwizzle feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_VIEWPORT_SWIZZLE_NVextendedDynamicState3CoverageToColorEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVextendedDynamicState3CoverageToColorLocation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NVextendedDynamicState3CoverageModulationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NVextendedDynamicState3CoverageModulationTableEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NVextendedDynamicState3CoverageModulationTable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NVextendedDynamicState3CoverageReductionMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NVextendedDynamicState3RepresentativeFragmentTestEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NVextendedDynamicState3ShadingRateImageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NVflags must not include PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXTflags must not include PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NVpDynamicStates member of pDynamicState is DYNAMIC_STATE_VIEWPORT or DYNAMIC_STATE_VIEWPORT_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::viewportCountpDynamicStates member of pDynamicState is DYNAMIC_STATE_SCISSOR or DYNAMIC_STATE_SCISSOR_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState::scissorCountpStages includes a fragment shader stage, DYNAMIC_STATE_DEPTH_WRITE_ENABLE is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of VkPipelineDepthStencilStateCreateInfo must be FALSEpStages includes a fragment shader stage, DYNAMIC_STATE_STENCIL_WRITE_MASK is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of VkStencilOpState::writeMask for both front and back in VkPipelineDepthStencilStateCreateInfo must be 0renderPass is NULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading, rasterizationSamples is not dynamic, and the pNext chain includes a VkPipelineRenderingCreateInfo structure, rasterizationSamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not FORMAT_UNDEFINEDVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must define vertex input stateVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define vertex input stateflags does not include PIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline libraryVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT the pipeline must define pre-rasterization shader stateflags does not include PIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline libraryVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includes DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState→rasterizerDiscardEnable set to FALSE, the pipeline must define fragment shader stateVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader stateVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includes DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState→rasterizerDiscardEnable set to FALSE, the pipeline must define fragment output interface stateVkGraphicsPipelineLibraryCreateInfoEXT::flags includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface statepDynamicState→pDynamicStates does not include DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is FORMAT_E5B9G9R9_UFLOAT_PACK32, the colorWriteMask member of the corresponding element of pColorBlendState→pAttachments must either include all of COLOR_COMPONENT_R_BIT, COLOR_COMPONENT_G_BIT, and COLOR_COMPONENT_B_BIT, or none of themsType must be STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFOpNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXTsType value of each struct in the pNext chain must be uniqueflags must be a valid combination of VkPipelineCreateFlagBits valuespDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structurebasePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDeviceVkPipelineColorBlendStateCreateInfo, VkPipelineDepthStencilStateCreateInfo, VkPipelineDynamicStateCreateInfo, VkPipelineInputAssemblyStateCreateInfo, VkPipelineMultisampleStateCreateInfo, VkPipelineRasterizationStateCreateInfo, VkPipelineShaderStageCreateInfo, VkPipelineTessellationStateCreateInfo, VkPipelineVertexInputStateCreateInfo, VkPipelineViewportStateCreateInfo, CreateGraphicsPipelines
struct VkGraphicsPipelineCreateInfo {
VkStructureType sType;
void const * pNext;
VkPipelineCreateFlags flags;
uint32_t stageCount;
VkPipelineShaderStageCreateInfo const * pStages;
VkPipelineVertexInputStateCreateInfo const * pVertexInputState;
VkPipelineInputAssemblyStateCreateInfo const * pInputAssemblyState;
VkPipelineTessellationStateCreateInfo const * pTessellationState;
VkPipelineViewportStateCreateInfo const * pViewportState;
VkPipelineRasterizationStateCreateInfo const * pRasterizationState;
VkPipelineMultisampleStateCreateInfo const * pMultisampleState;
VkPipelineDepthStencilStateCreateInfo const * pDepthStencilState;
VkPipelineColorBlendStateCreateInfo const * pColorBlendState;
VkPipelineDynamicStateCreateInfo const * pDynamicState;
VkPipelineLayout layout;
VkRenderPass renderPass;
uint32_t subpass;
VkPipeline basePipelineHandle;
int32_t basePipelineIndex;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkGraphicsPipelineCreateInfo.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | BASEPIPELINEHANDLE
The struct member offsets. |
| public static final int | BASEPIPELINEINDEX
The struct member offsets. |
| public static final int | FLAGS
The struct member offsets. |
| public static final int | LAYOUT
The struct member offsets. |
| public static final int | PCOLORBLENDSTATE
The struct member offsets. |
| public static final int | PDEPTHSTENCILSTATE
The struct member offsets. |
| public static final int | PDYNAMICSTATE
The struct member offsets. |
| public static final int | PINPUTASSEMBLYSTATE
The struct member offsets. |
| public static final int | PMULTISAMPLESTATE
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PRASTERIZATIONSTATE
The struct member offsets. |
| public static final int | PSTAGES
The struct member offsets. |
| public static final int | PTESSELLATIONSTATE
The struct member offsets. |
| public static final int | PVERTEXINPUTSTATE
The struct member offsets. |
| public static final int | PVIEWPORTSTATE
The struct member offsets. |
| public static final int | RENDERPASS
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STAGECOUNT
The struct member offsets. |
| public static final int | STYPE
The struct member offsets. |
| public static final int | SUBPASS
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkGraphicsPipelineCreateInfo(ByteBuffer container)
Creates a |