Class VkGraphicsPipelineCreateInfo
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
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 ERROR_INVALID_SHADER_NV will be generated.
Note
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:
VkPipelineShaderStageCreateInfoentries for:- Vertex shaders
- Tessellation control shaders
- Tessellation evaluation shaders
- Geometry shaders
- Task shaders
- Mesh shaders
- Within the
VkPipelineLayout, all descriptor sets with pre-rasterization shader bindings ifPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTwas specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTwas not specified, the full pipeline layout must be specified.
- If
VkPipelineViewportStateCreateInfoVkPipelineRasterizationStateCreateInfoVkPipelineTessellationStateCreateInfoVkRenderPassandsubpassparameter- The
viewMaskparameter ofVkPipelineRenderingCreateInfo(formats are ignored) VkPipelineDiscardRectangleStateCreateInfoEXTVkPipelineFragmentShadingRateStateCreateInfoKHR
This 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:
- A
VkPipelineShaderStageCreateInfoentry for the fragment shader - Within the
VkPipelineLayout, all descriptor sets with fragment shader bindings ifPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTwas specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTwas not specified, the full pipeline layout must be specified.
- If
VkPipelineMultisampleStateCreateInfoif sample shading is enabled orrenderpassis notNULL_HANDLEVkPipelineDepthStencilStateCreateInfoVkRenderPassandsubpassparameter- The
viewMaskparameter ofVkPipelineRenderingCreateInfo(formats are ignored) VkPipelineFragmentShadingRateStateCreateInfoKHRVkPipelineFragmentShadingRateEnumStateCreateInfoNVVkPipelineRepresentativeFragmentTestStateCreateInfoNV- Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRflag - Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTflag VkRenderingInputAttachmentIndexInfo
If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable is 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:
VkPipelineColorBlendStateCreateInfoVkRenderPassandsubpassparameterVkPipelineMultisampleStateCreateInfoVkPipelineRenderingCreateInfoVkAttachmentSampleCountInfoAMDVkAttachmentSampleCountInfoNVVkExternalFormatANDROID- Inclusion/omission of the
PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTandPIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTflags - Inclusion/omission of the
PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXTflag VkRenderingAttachmentLocationInfo
If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable is 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 the pNext chain includes a VkPipelineCreateFlags2CreateInfo structure, VkPipelineCreateFlags2CreateInfo::flags from that structure is used instead of flags from this structure.
Valid Usage
- If the
pNextchain does not include aVkPipelineCreateFlags2CreateInfostructure,flagsmust be a valid combination ofVkPipelineCreateFlagBitsvalues - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid graphicsVkPipelinehandle - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag,basePipelineIndexmust be -1 orbasePipelineHandlemust beNULL_HANDLE - If a push constant block is declared in a shader, a push constant range in
layoutmust match the shader stage - If a push constant block is declared in a shader, the block must be contained inside the push constant range in
layoutthat matches the stage - If a resource variable is declared in a shader, the corresponding descriptor set in
layoutmust match the shader stage - If a resource variable is declared in a shader, and the descriptor type is not
DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set inlayoutmust match the descriptor type - If a resource variable is declared in a shader as an array, the corresponding descriptor set in
layoutmust match the descriptor count - If a resource variables is declared in a shader as an array of descriptors, then the descriptor type of that variable must not be
DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK - If the pipeline requires pre-rasterization shader state the
stagemember of one element ofpStagesmust beSHADER_STAGE_VERTEX_BITorSHADER_STAGE_MESH_BIT_EXT - If the pipeline requires pre-rasterization shader state the geometric shader stages provided in
pStagesmust be either from the mesh shading pipeline (stageisSHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stageisSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BIT, orSHADER_STAGE_GEOMETRY_BIT) - If the pipeline requires pre-rasterization shader state and
pStagescontains bothSHADER_STAGE_TASK_BIT_EXTandSHADER_STAGE_MESH_BIT_EXT, then the mesh shader’s entry point must not declare a variable with aDrawIndexBuiltIndecoration - The shader stages for
SHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXTmust use either theTaskNVandMeshNVExecutionModelor theTaskEXTandMeshEXTExecutionModel, but must not use both - If the pipeline requires pre-rasterization shader state and
pStagesincludes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If the pipeline requires pre-rasterization shader state and
pStagesincludes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If the pipeline requires pre-rasterization shader state and
pStagesincludes a tessellation control shader stage, and theVK_EXT_extended_dynamic_state3extension is not enabled or theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTdynamic state is not set,pTessellationStatemust be a valid pointer to a validVkPipelineTessellationStateCreateInfostructure - If
pTessellationStateis notNULLit must be a pointer to a validVkPipelineTessellationStateCreateInfostructure - If the pipeline requires pre-rasterization shader state and
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction specifying the type of subdivision in the pipeline - If the pipeline requires pre-rasterization shader state and
pStagesincludes 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 - If the pipeline requires pre-rasterization shader state and
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction specifying the output patch size in the pipeline - If the pipeline requires pre-rasterization shader state and
pStagesincludes 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 - If the pipeline is being created with pre-rasterization shader state and vertex input state and
pStagesincludes tessellation shader stages, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state is not enabled ordynamicPrimitiveTopologyUnrestrictedisFALSE, thetopologymember ofpInputAssemblymust bePRIMITIVE_TOPOLOGY_PATCH_LIST - If the pipeline is being created with pre-rasterization shader state and vertex input state and the
topologymember ofpInputAssemblyisPRIMITIVE_TOPOLOGY_PATCH_LIST, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state is not enabled ordynamicPrimitiveTopologyUnrestrictedisFALSE, thenpStagesmust include tessellation shader stages - If the pipeline is being created with a
TessellationEvaluationExecutionModel, noGeometryExecutionModel, uses thePointModeExecutionMode, and theshaderTessellationAndGeometryPointSizefeature is enabled, aPointSizedecorated variable must be written to if themaintenance5feature is not enabled - If the pipeline is being created with a
VertexExecutionModeland noTessellationEvaluationorGeometryExecutionModel, and thetopologymember ofpInputAssemblyisPRIMITIVE_TOPOLOGY_POINT_LIST, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state is not enabled ordynamicPrimitiveTopologyUnrestrictedisFALSE, aPointSizedecorated variable must be written to if themaintenance5feature is not enabled - If the
maintenance5feature is enabled and aPointSizedecorated variable is written to, all execution paths must write to aPointSizedecorated variable - If the pipeline is being created with a
TessellationEvaluationExecutionModel, noGeometryExecutionModel, uses thePointModeExecutionMode, and theshaderTessellationAndGeometryPointSizefeature is not enabled, aPointSizedecorated variable must not be written to - If the pipeline is being created with a
GeometryExecutionModel, uses theOutputPointsExecutionMode, and theshaderTessellationAndGeometryPointSizefeature is enabled, aPointSizedecorated variable must be written to for every vertex emitted if themaintenance5feature is not enabled - If the pipeline is being created with a
GeometryExecutionModel, uses theOutputPointsExecutionMode, and theshaderTessellationAndGeometryPointSizefeature is not enabled, aPointSizedecorated variable must not be written to - If the pipeline requires pre-rasterization shader state and
pStagesincludes 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 - If the pipeline requires pre-rasterization shader state and
pStagesincludes 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 - If the pipeline requires 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 with
PrimitiveId, then the geometry shader code must write to a matching output variable, decorated withPrimitiveId, in all execution paths - If the pipeline requires pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with
PrimitiveId, then the mesh shader code must write to a matching output variable, decorated withPrimitiveId, in all execution paths - If
renderPassis notNULL_HANDLEand the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined asATTACHMENT_UNUSEDinsubpass - If the pipeline requires pre-rasterization shader state and multiple pre-rasterization shader stages are included in
pStages, 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 - If the pipeline requires 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
- If
renderPassis notNULL_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 containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beFALSE - If
renderPassis notNULL_HANDLE, the pipeline is being created with fragment output interface state, thepColorBlendStatepointer is notNULL, theattachmentCountmember ofpColorBlendStateis not ignored, and the subpass uses color attachments, theattachmentCountmember ofpColorBlendStatemust be equal to thecolorAttachmentCountused to createsubpass - If the pipeline requires pre-rasterization shader state, and
pViewportState→pViewportsis not dynamic, thenpViewportState→pViewportsmust be a valid pointer to an array ofpViewportState→viewportCountvalidVkViewportstructures - If the pipeline requires pre-rasterization shader state, and
pViewportState→pScissorsis not dynamic, thenpViewportState→pScissorsmust be a valid pointer to an array ofpViewportState→scissorCountVkRect2Dstructures - If the pipeline requires pre-rasterization shader state, and the
wideLinesfeature is not enabled, and no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_LINE_WIDTH, thelineWidthmember ofpRasterizationStatemust be1.0 - If the pipeline requires pre-rasterization shader state, and the
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEdynamic state is enabled or therasterizerDiscardEnablemember ofpRasterizationStateisFALSE, and related dynamic state is not set,pViewportStatemust be a valid pointer to a validVkPipelineViewportStateCreateInfostructure - If
pViewportStateis notNULLit must be a valid pointer to a validVkPipelineViewportStateCreateInfostructure - If the pipeline requires fragment output interface state, and the
VK_EXT_extended_dynamic_state3extension is not enabled or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,DYNAMIC_STATE_SAMPLE_MASK_EXT, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic states is not set, or the alphaToOne feature is enabled andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTis not set,pMultisampleStatemust be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If
pMultisampleStateis notNULLit must be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If the pipeline is being created with fragment shader state, the
VkPipelineMultisampleStateCreateInfo::alphaToCoverageEnableis not ignored and isTRUE, then the Fragment Output Interface must contain a variable for the alphaComponentword inLocation0 atIndex0 - If
renderPassis notNULL_HANDLE, the pipeline is being created with fragment shader state, andsubpassuses a depth/stencil attachment, and related dynamic state is not set,pDepthStencilStatemust be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
pDepthStencilStateis notNULLit must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
renderPassis notNULL_HANDLE, the pipeline is being created with fragment output interface state, andsubpassuses color attachments, and related dynamic state is not set,pColorBlendStatemust be a valid pointer to a validVkPipelineColorBlendStateCreateInfostructure - If the pipeline requires pre-rasterization shader state, the
depthBiasClampfeature is not enabled, no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DEPTH_BIAS, and thedepthBiasEnablemember ofpRasterizationStateisTRUE, thedepthBiasClampmember ofpRasterizationStatemust be0.0 - If the pipeline requires fragment shader state, the
VK_EXT_depth_range_unrestrictedextension is not enabled and no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DEPTH_BOUNDS, and thedepthBoundsTestEnablemember ofpDepthStencilStateisTRUE, theminDepthBoundsandmaxDepthBoundsmembers ofpDepthStencilStatemust be between0.0and1.0, inclusive - If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamplesandsampleLocationsInfoare not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnableincluded in thepNextchain ofpMultisampleStateisTRUE,sampleLocationsInfo.sampleLocationGridSize.widthmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamplesandsampleLocationsInfoare not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnablethe included in thepNextchain ofpMultisampleStateisTRUEorDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTis used,sampleLocationsInfo.sampleLocationGridSize.heightmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamplesandsampleLocationsInfoare not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnableincluded in thepNextchain ofpMultisampleStateisTRUEorDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTis used,sampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamples - If the pipeline requires fragment shader state, and the
sampleLocationsEnablemember of aVkPipelineSampleLocationsStateCreateInfoEXTstructure included in thepNextchain ofpMultisampleStateisTRUE, the fragment shader code must not statically use the extended instructionInterpolateAtSample - If the pipeline requires fragment output interface state, and none of the
VK_AMD_mixed_attachment_samplesextension, theVK_NV_framebuffer_mixed_samplesextension, or themultisampledRenderToSingleSampledfeature are enabled,rasterizationSamplesis not dynamic, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count for those subpass attachments - If the pipeline requires fragment output interface state, and the
VK_AMD_mixed_attachment_samplesextension is enabled,rasterizationSamplesis not dynamic, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust equal the maximum of the sample counts of those subpass attachments - If
renderPassis notNULL_HANDLE, theVK_EXT_multisampled_render_to_single_sampledextension is enabled,rasterizationSamplesis not dynamic, andsubpasshas aVkMultisampledRenderToSingleSampledInfoEXTstructure included in theVkSubpassDescription2::pNextchain withmultisampledRenderToSingleSampledEnableequal toTRUE, then therasterizationSamplesmember ofpMultisampleStatemust be equal toVkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples - If the pipeline requires fragment output interface state, the
VK_NV_framebuffer_mixed_samplesextension is enabled,rasterizationSamplesis not dynamic, 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 - If the pipeline requires fragment output interface state, the
VK_NV_framebuffer_mixed_samplesextension is enabled,rasterizationSamplesis not dynamic, and ifsubpasshas any color attachments, then therasterizationSamplesmember ofpMultisampleStatemust be greater than or equal to the sample count for those subpass attachments - If the pipeline requires fragment output interface state, the
VK_NV_coverage_reduction_modeextension is enabled, andrasterizationSamplesis not dynamic, the coverage reduction mode specified byVkPipelineCoverageReductionStateCreateInfoNV::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 - If the pipeline requires fragment output interface state,
rasterizationSamplesis not dynamic, andsubpassdoes not use any color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust follow the rules for a zero-attachment subpass - If
renderPassis notNULL_HANDLE,subpassmust be a valid subpass withinrenderPass - If
renderPassis notNULL_HANDLE, the pipeline is being created with pre-rasterization shader state,subpassviewMask is not 0, andmultiviewTessellationShaderis not enabled, thenpStagesmust not include tessellation shaders - If
renderPassis notNULL_HANDLE, the pipeline is being created with pre-rasterization shader state,subpassviewMask is not 0, andmultiviewGeometryShaderis not enabled, thenpStagesmust not include a geometry shader - If
renderPassis notNULL_HANDLEand the pipeline is being created with pre-rasterization shader state, andsubpassviewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with theLayerbuilt-in decoration in their interfaces - If
renderPassis notNULL_HANDLE, the pipeline is being created with pre-rasterization shader state,subpassviewMask is not 0, andmultiviewMeshShaderis not enabled, thenpStagesmust not include a mesh shader flagsmust not contain thePIPELINE_CREATE_DISPATCH_BASEflag- If the pipeline requires fragment shader state and an input attachment was referenced by an
aspectMaskatrenderPasscreation time, the fragment shader must only read from the aspects that were specified for that input attachment - The number of resources in
layoutaccessible to each shader stage that is used by the pipeline must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and theviewportWScalingEnablemember of aVkPipelineViewportWScalingStateCreateInfoNVstructure, included in thepNextchain ofpViewportState, isTRUE, thepViewportWScalingsmember of theVkPipelineViewportWScalingStateCreateInfoNVmust be a pointer to an array ofVkPipelineViewportWScalingStateCreateInfoNV::viewportCountvalidVkViewportWScalingNVstructures - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and ifpViewportState→pNextchain includes aVkPipelineViewportExclusiveScissorStateCreateInfoNVstructure, and if itsexclusiveScissorCountmember is not 0, then itspExclusiveScissorsmember must be a valid pointer to an array ofexclusiveScissorCountVkRect2Dstructures - If
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NVis included in thepDynamicStatesarray then the implementation must support at leastspecVersion2 of theVK_NV_scissor_exclusiveextension - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and ifpViewportState→pNextchain includes aVkPipelineViewportShadingRateImageStateCreateInfoNVstructure, then itspShadingRatePalettesmember must be a valid pointer to an array ofviewportCountvalidVkShadingRatePaletteNVstructures - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and ifpNextchain includes aVkPipelineDiscardRectangleStateCreateInfoEXTstructure, and if itsdiscardRectangleCountmember is not 0, then itspDiscardRectanglesmember must be a valid pointer to an array ofdiscardRectangleCountVkRect2Dstructures - If
DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXTis included in thepDynamicStatesarray then the implementation must support at leastspecVersion2 of theVK_EXT_discard_rectanglesextension - If
DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXTis included in thepDynamicStatesarray then the implementation must support at leastspecVersion2 of theVK_EXT_discard_rectanglesextension - If the pipeline requires vertex input state, and
pVertexInputStateis not dynamic, thenpVertexInputStatemust be a valid pointer to a validVkPipelineVertexInputStateCreateInfostructure - If
vertexAttributeRobustnessis not enabled and the pipeline is being created with vertex input state andpVertexInputStateis not dynamic, then all variables with theInputstorage class decorated withLocationin theVertexExecutionModelOpEntryPointmust contain a location inVkVertexInputAttributeDescription::location - If the pipeline requires vertex input state and
pVertexInputStateis not dynamic, then the numeric type associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be the same asVkVertexInputAttributeDescription::format - If the pipeline is being created with vertex input state and
pVertexInputStateis not dynamic, andVkVertexInputAttributeDescription::formathas a 64-bit component, then the scalar width associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be 64-bit - If the pipeline is being created with vertex input state and
pVertexInputStateis not dynamic, and the scalar width associated with aLocationdecoratedInputvariable in theVertexExecutionModelOpEntryPointis 64-bit, then the correspondingVkVertexInputAttributeDescription::formatmust have a 64-bit component - If the pipeline is being created with vertex input state and
pVertexInputStateis not dynamic, andVkVertexInputAttributeDescription::formathas a 64-bit component, then allInputvariables at the correspondingLocationin theVertexExecutionModelOpEntryPointmust not use components that are not present in the format - If the pipeline requires vertex input state, and related dynamic state is not set,
pInputAssemblyStatemust be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfostructure - If
pInputAssemblyStateis notNULLit must be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfostructure - If the pipeline requires pre-rasterization shader state, the
Xfbexecution mode can be specified by no more than one shader stage inpStages - If the pipeline requires pre-rasterization shader state, and any shader stage in
pStagesspecifiesXfbexecution mode it must be the last pre-rasterization shader stage - If the pipeline requires 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 - If the pipeline requires 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 - If the pipeline requires pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the
GeometryStreamscapability, thenVkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreamsfeature must be enabled - If the pipeline requires 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 a
Xfbexecution mode - If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and
pMultisampleStateis notNULL, thelineRasterizationModemember of aVkPipelineRasterizationLineStateCreateInfostructure included in thepNextchain ofpRasterizationStateisLINE_RASTERIZATION_MODE_BRESENHAMorLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then thealphaToCoverageEnable,alphaToOneEnable, andsampleShadingEnablemembers ofpMultisampleStatemust all beFALSE - If the pipeline requires pre-rasterization shader state, the
stippledLineEnablemember ofVkPipelineRasterizationLineStateCreateInfoisTRUE, and no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_LINE_STIPPLE, then thelineStippleFactormember ofVkPipelineRasterizationLineStateCreateInfomust be in the range[1,256] - If the
shaderMeshEnqueuefeature is not enabled, shaders specified bypStagesmust not declare theShaderEnqueueAMDXcapability - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, shaders specified bypStagesmust not declare theShaderEnqueueAMDXcapability - If any shader stages in
pStagesdeclare theShaderEnqueueAMDXcapability,PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDXandPIPELINE_CREATE_2_LIBRARY_BIT_KHRmust be included inflags - If
PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDXis included inflags, and the pipeline requires pre-rasterization shader state, there must not be a task or vertex shader specified inpStages - If
PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDXis included inflags, all elements ofVkPipelineLibraryCreateInfoKHR::pLibrariesmust have been created withPIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV- If the
extendedDynamicStatefeature is not enabled, and the minimum value ofVkApplicationInfo::apiVersionused to create theVkInstanceandapiVersionsupported by the physical device is less than Version 1.3 there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_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, orDYNAMIC_STATE_STENCIL_OP - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_VIEWPORT_WITH_COUNTis included in thepDynamicStatesarray thenviewportCountmust be zero - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_SCISSOR_WITH_COUNTis included in thepDynamicStatesarray thenscissorCountmust be zero - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_VIEWPORT_WITH_COUNTis included in thepDynamicStatesarray thenDYNAMIC_STATE_VIEWPORTmust not be present - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_SCISSOR_WITH_COUNTis included in thepDynamicStatesarray thenDYNAMIC_STATE_SCISSORmust not be present - If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the
pDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_PRIMITIVE_TOPOLOGY, orDYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE - If the
extendedDynamicState2feature is not enabled, and the minimum value ofVkApplicationInfo::apiVersionused to create theVkInstanceandapiVersionsupported by the physical device is less than Version 1.3 there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_DEPTH_BIAS_ENABLE,DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, orDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE - If the
extendedDynamicState2LogicOpfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_LOGIC_OP_EXT - If the
extendedDynamicState2PatchControlPointsfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT - If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the
pDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, orDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT - If
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then theVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommandsfeature must be enabled - If the pipeline requires pre-rasterization shader state and
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specifyXfbexecution mode - If the pipeline is not created with a complete set of state, or
VkPipelineLibraryCreateInfoKHR::libraryCountis not 0,VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCountandVkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCountmust be 0 - If the pipeline is created with a complete set of state, and
VkPipelineLibraryCreateInfoKHR::libraryCountis 0, and thepNextchain includes an instance ofVkGraphicsPipelineShaderGroupsCreateInfoNV,VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCountmust be greater than 0 - If
flagsincludesPIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then theVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommandsfeature must be enabled - If the pipeline requires pre-rasterization shader state and
flagsincludesPIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then all stages must not specifyXfbexecution mode - If the
pipelineCreationCacheControlfeature is not enabled,flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BITorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT - If the
pipelineProtectedAccessfeature is not enabled,flagsmust not includePIPELINE_CREATE_NO_PROTECTED_ACCESS_BITorPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT flagsmust not include bothPIPELINE_CREATE_NO_PROTECTED_ACCESS_BITandPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT- If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be greater than or equal to 1 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be greater than or equal to 1 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be a power-of-two value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be a power-of-two value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthmust be less than or equal to 4 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust be less than or equal to 4 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and thepipelineFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.widthandVkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.heightmust both be equal to 1 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be a validVkFragmentShadingRateCombinerOpKHRvalue - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be a validVkFragmentShadingRateCombinerOpKHRvalue - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and theprimitiveFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and theattachmentFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported,DYNAMIC_STATE_VIEWPORT_WITH_COUNTis not included inpDynamicState→pDynamicStates, andVkPipelineViewportStateCreateInfo::viewportCountis greater than 1, entry points specified inpStagesmust not write to thePrimitiveShadingRateKHRbuilt-in - If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and entry points specified inpStageswrite to theViewportIndexbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in - If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and entry points specified inpStageswrite to theViewportMaskNVbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in - If the pipeline requires pre-rasterization shader state or fragment shader state, the
fragmentShadingRateNonTrivialCombinerOpslimit is not supported, andDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, elements ofVkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOpsmust beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateTypemust be a validVkFragmentShadingRateTypeNVvalue - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust be a validVkFragmentShadingRateNVvalue - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be a validVkFragmentShadingRateCombinerOpKHRvalue - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a validVkFragmentShadingRateCombinerOpKHRvalue - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and thefragmentShadingRateEnumsfeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateTypemust be equal toFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and thepipelineFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust be equal toFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and theprimitiveFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, and theattachmentFragmentShadingRatefeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the pipeline requires fragment shader state, and the
fragmentShadingRateNonTrivialCombinerOpslimit is not supported andDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState→pDynamicStates, elements ofVkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOpsmust beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR - If the pipeline requires fragment shader state, and the
supersampleFragmentShadingRatesfeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust not be equal toFRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, orFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV - If the pipeline requires fragment shader state, and the
noInvocationFragmentShadingRatesfeature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRatemust not be equal toFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV - All elements of the
pDynamicStatesmember ofpDynamicStatemust not beDYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR - If the pipeline requires pre-rasterization shader state and the
vertexInputDynamicStatefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_VERTEX_INPUT_EXT - If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the
pDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_VERTEX_INPUT_EXT - If the
colorWriteEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT - If the pipeline requires fragment shader state, and the
VK_QCOM_render_pass_shader_resolveextension is enabled,rasterizationSamplesis not dynamic, and if subpass has any input attachments, and if the subpass description containsSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equalrasterizationSamples - If the pipeline requires fragment shader state, and the
VK_QCOM_render_pass_shader_resolveextension is enabled, and if the subpass description containsSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, thensampleShadingEnablemust be false - If
flagsincludesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain - If
flagsincludesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and ifpResolveAttachmentsis notNULL, then each resolve attachment must beATTACHMENT_UNUSED - If the
dynamicRenderingfeature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state,renderPassmust not beNULL_HANDLE - If the
multiviewfeature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, andrenderPassisNULL_HANDLE,VkPipelineRenderingCreateInfo::viewMaskmust be 0 - If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and
renderPassisNULL_HANDLE, the index of the most significant bit inVkPipelineRenderingCreateInfo::viewMaskmust be less thanmaxMultiviewViewCount - If the pipeline requires fragment output interface state, and
renderPassisNULL_HANDLE, andVkPipelineRenderingCreateInfo::colorAttachmentCountis not 0,VkPipelineRenderingCreateInfo::pColorAttachmentFormatsmust be a valid pointer to an array ofcolorAttachmentCountvalidVkFormatvalues - If the pipeline requires fragment output interface state, and
renderPassisNULL_HANDLE, each element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsmust be a validVkFormatvalue - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE, and any element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsis notFORMAT_UNDEFINED, that format must be a format with potential format features that includeFORMAT_FEATURE_COLOR_ATTACHMENT_BITorFORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV - If the pipeline requires fragment output interface state, and
renderPassisNULL_HANDLE,VkPipelineRenderingCreateInfo::depthAttachmentFormatmust be a validVkFormatvalue - If the pipeline requires fragment output interface state, and
renderPassisNULL_HANDLE,VkPipelineRenderingCreateInfo::stencilAttachmentFormatmust be a validVkFormatvalue - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE, andVkPipelineRenderingCreateInfo::depthAttachmentFormatis notFORMAT_UNDEFINED, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE, andVkPipelineRenderingCreateInfo::stencilAttachmentFormatis notFORMAT_UNDEFINED, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE, andVkPipelineRenderingCreateInfo::depthAttachmentFormatis notFORMAT_UNDEFINED, it must be a format that includes a depth component - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE, andVkPipelineRenderingCreateInfo::stencilAttachmentFormatis notFORMAT_UNDEFINED, it must be a format that includes a stencil component - If the pipeline requires fragment output interface state,
renderPassisNULL_HANDLE,VkPipelineRenderingCreateInfo::depthAttachmentFormatis notFORMAT_UNDEFINED, andVkPipelineRenderingCreateInfo::stencilAttachmentFormatis notFORMAT_UNDEFINED,depthAttachmentFormatmust equalstencilAttachmentFormat - If
renderPassisNULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either ofVkPipelineRenderingCreateInfo::depthAttachmentFormatorVkPipelineRenderingCreateInfo::stencilAttachmentFormatare notFORMAT_UNDEFINED, and theVK_EXT_extended_dynamic_state3extension is not enabled or any of theDYNAMIC_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, orDYNAMIC_STATE_DEPTH_BOUNDSdynamic states are not set,pDepthStencilStatemust be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
pDepthStencilStateis notNULLit must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
renderPassisNULL_HANDLEand the pipeline is being created with fragment shader state but not fragment output interface state, and theVK_EXT_extended_dynamic_state3extension is not enabled, or any of theDYNAMIC_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, orDYNAMIC_STATE_DEPTH_BOUNDSdynamic states are not set,pDepthStencilStatemust be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
pDepthStencilStateis notNULLit must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If
renderPassisNULL_HANDLE, the pipeline is being created with fragment output interface state, and any element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsis notFORMAT_UNDEFINED, and theVK_EXT_extended_dynamic_state3extension is not enabled, or any of theDYNAMIC_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, orDYNAMIC_STATE_BLEND_CONSTANTSdynamic states are not set,pColorBlendStatemust be a valid pointer to a validVkPipelineColorBlendStateCreateInfostructure - If
pColorBlendStateis notNULLit must be a valid pointer to a validVkPipelineColorBlendStateCreateInfostructure - If
renderPassisNULL_HANDLE,pColorBlendStateis not dynamic, and the pipeline is being created with fragment output interface state,pColorBlendState→attachmentCountmust be equal toVkPipelineRenderingCreateInfo::colorAttachmentCount - If
renderPassisNULL_HANDLE, the pipeline is being created with pre-rasterization shader state,VkPipelineRenderingCreateInfo::viewMaskis not 0, and themultiviewTessellationShaderfeature is not enabled, thenpStagesmust not include tessellation shaders - If
renderPassisNULL_HANDLE, the pipeline is being created with pre-rasterization shader state,VkPipelineRenderingCreateInfo::viewMaskis not 0, and themultiviewGeometryShaderfeature is not enabled, thenpStagesmust not include a geometry shader - If
renderPassisNULL_HANDLE, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo::viewMaskis not 0, all of the shaders in the pipeline must not include variables decorated with theLayerbuilt-in decoration in their interfaces - If
renderPassisNULL_HANDLE, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo::viewMaskis not 0, andmultiviewMeshShaderis not enabled, thenpStagesmust not include a mesh shader - If the
dynamicRenderingLocalReadfeature is not enabled, the pipeline requires fragment shader state, andrenderPassisNULL_HANDLE, fragment shaders inpStagesmust not include theInputAttachmentcapability - If the pipeline requires fragment shader state and
renderPassis notNULL_HANDLE, fragment shaders inpStagesmust not include any of theTileImageColorReadAccessEXT,TileImageDepthReadAccessEXT, orTileImageStencilReadAccessEXTcapabilities - If the pipeline requires fragment output interface state and
renderPassisNULL_HANDLE, for each color attachment format defined by thepColorAttachmentFormatsmember ofVkPipelineRenderingCreateInfo, if its potential format features do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beFALSE - If the pipeline requires fragment output interface state and
renderPassisNULL_HANDLE, if thepNextchain includesVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNV, thecolorAttachmentCountmember of that structure must be equal to the value ofVkPipelineRenderingCreateInfo::colorAttachmentCount - If
pStagesincludes a fragment shader stage, and the fragment shader declares theEarlyFragmentTestsexecution mode, theflagsmember ofVkPipelineDepthStencilStateCreateInfomust not includePIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTorPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT - If the
dynamicRenderingLocalReadfeature is not enabled, the pipeline requires fragment output interface state, and theflagsmember ofVkPipelineColorBlendStateCreateInfoincludesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,renderPassmust not beNULL_HANDLE - If the
dynamicRenderingLocalReadfeature is not enabled, the pipeline requires fragment output interface state, and theflagsmember ofVkPipelineDepthStencilStateCreateInfoincludesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTorPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,renderPassmust not beNULL_HANDLE - If the fragment output interface state, elements of the
pColorAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVmust be validVkSampleCountFlagBitsvalues - If the fragment output interface state and the
depthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVis not 0, it must be a validVkSampleCountFlagBitsvalue - If the pipeline requires fragment output interface state,
renderPassis notNULL_HANDLE, and theflagsmember ofVkPipelineColorBlendStateCreateInfoincludesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTsubpassmust have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT - If the pipeline requires fragment shader state,
renderPassis notNULL_HANDLE, and theflagsmember ofVkPipelineDepthStencilStateCreateInfoincludesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,subpassmust have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT - If the pipeline requires fragment shader state,
renderPassis notNULL_HANDLE, and theflagsmember ofVkPipelineDepthStencilStateCreateInfoincludesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,subpassmust have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT - If
VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCountis not 0, it must be equal tostageCount - If
renderPassisNULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, andVkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnlyisTRUEthenVkMultiviewPerViewAttributesInfoNVX::perViewAttributesmust also beTRUE - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, the value ofVkMultiviewPerViewAttributesInfoNVX::perViewAttributesspecified in both this pipeline and the library must be equal - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value ofVkMultiviewPerViewAttributesInfoNVX::perViewAttributesspecified in both libraries must be equal - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, the value ofVkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnlyspecified in both this pipeline and the library must be equal - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value ofVkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnlyspecified in both libraries must be equal - If the pipeline requires pre-rasterization shader state or fragment shader state,
pStagesmust be a valid pointer to an array ofstageCountvalidVkPipelineShaderStageCreateInfostructures - If the pipeline does not require pre-rasterization shader state or fragment shader state,
stageCountmust be zero - If the pipeline requires pre-rasterization shader state, and related dynamic state is not set,
pRasterizationStatemust be a valid pointer to a validVkPipelineRasterizationStateCreateInfostructure - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and related dynamic state is not set, thenpMultisampleStatemust be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If
pRasterizationStateis notNULLit must be a valid pointer to a validVkPipelineRasterizationStateCreateInfostructure - If the pipeline requires fragment shader state or pre-rasterization shader state,
layoutmust be a validVkPipelineLayouthandle - If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output state, and
renderPassis notNULL_HANDLE,renderPassmust be a validVkRenderPasshandle - If the pipeline requires pre-rasterization shader state,
stageCountmust be greater than 0 - If the
graphicsPipelineLibraryfeature is not enabled, and if theshaderMeshEnqueuefeature is not enabled,flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR - If the
shaderMeshEnqueuefeature is not enabled, and the pipeline is being created with all possible state subsets,flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR - If
flagsincludesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included viaVkPipelineLibraryCreateInfoKHRmust have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT - If
flagsincludesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,flagsmust also includePIPELINE_CREATE_LIBRARY_BIT_KHR - If
flagsincludesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included viaVkPipelineLibraryCreateInfoKHRmust have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT - Any pipeline libraries included via
VkPipelineLibraryCreateInfoKHR::pLibrariesmust not include any state subset already defined by this structure or defined by any other pipeline library inVkPipelineLibraryCreateInfoKHR::pLibraries - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, andlayoutwas not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then thelayoutused by this pipeline and the library must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and thelayoutspecified by either library was not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then thelayoutused by each library must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other subset, andlayoutwas created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then thelayoutused by the library must also have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and thelayoutspecified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then thelayoutused by both libraries must have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other subset, andlayoutwas created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of thepSetLayoutsarray whichlayoutwas created with that are notNULL_HANDLEmust be identically defined to the element at the same index ofpSetLayoutsused to create the library’slayout - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and thelayoutspecified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of thepSetLayoutsarray which eitherlayoutwas created with that are notNULL_HANDLEmust be identically defined to the element at the same index ofpSetLayoutsused to create the other library’slayout - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, any descriptor set layout N specified bylayoutin both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified bylayoutin both libraries which include bindings accessed by shader stages in each must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, push constants specified inlayoutin both this pipeline and the library which are available to shader stages in each must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified inlayoutin both this pipeline and the library which are available to shader stages in each must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other subset, any element of thepSetLayoutsarray whenlayoutwas created and the corresponding element of thepSetLayoutsarray used to create the library’slayoutmust not both beNULL_HANDLE - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of thepSetLayoutsarray used to create each library’slayoutwasNULL_HANDLE, then the corresponding element of thepSetLayoutsarray used to create the other library’slayoutmust not beNULL_HANDLE - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other subset, and any element of thepSetLayoutsarray whichlayoutwas created with wasNULL_HANDLE, then the corresponding element of thepSetLayoutsarray used to create the library’slayoutmust not have shader bindings for shaders in the other subset - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other subset, and any element of thepSetLayoutsarray used to create the library’slayoutwasNULL_HANDLE, then the corresponding element of thepSetLayoutsarray used to create this pipeline’slayoutmust not have shader bindings for shaders in the other subset - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of thepSetLayoutsarray used to create each library’slayoutwasNULL_HANDLE, then the corresponding element of thepSetLayoutsarray used to create the other library’slayoutmust not have shader bindings for shaders in the other subset - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes bothGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTandGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,layoutmust have been created with no elements of thepSetLayoutsarray set toNULL_HANDLE - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTandpRasterizationState→rasterizerDiscardEnableisTRUE,layoutmust have been created with no elements of thepSetLayoutsarray set toNULL_HANDLE - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, the value ofsubpassmust be equal to that used to create the library - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, the value ofsubpassused to create each library must be identical - If
renderpassis notNULL_HANDLE,VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags,renderPassmust be compatible with that used to create the library - If
renderpassisNULL_HANDLE,VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, the value ofrenderPassused to create that library must also beNULL_HANDLE - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, andrenderPassisNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::viewMaskused by this pipeline and that specified by the library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, andrenderPasswasNULL_HANDLEfor both libraries, the value ofVkPipelineRenderingCreateInfo::viewMaskset by each library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes one of the other flags, therenderPassobjects used to create each library must be compatible or all equal toNULL_HANDLE - If
renderPassis notNULL_HANDLE, the pipeline requires fragment shader state, and theVK_EXT_extended_dynamic_state3extension is not enabled or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,DYNAMIC_STATE_SAMPLE_MASK_EXT, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic states is not set, or the alphaToOne feature is enabled andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTis not set, thenpMultisampleStatemust be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If the pipeline requires fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the
Inputstorage class withSample, and theVK_EXT_extended_dynamic_state3extension is not enabled or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,DYNAMIC_STATE_SAMPLE_MASK_EXT, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic states is not set, or the alphaToOne feature is enabled andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTis not set, thenpMultisampleStatemust be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXTwith apMultisampleStatethat was notNULL, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,pMultisampleStatemust be identically defined to that used to create the library - If an element of
VkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXTwith apMultisampleStatethat was notNULL, and ifVkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,pMultisampleStatemust be identically defined to that used to create the library - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXTwith apMultisampleStatethat was notNULL, and if a different element ofVkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, thepMultisampleStateused to create each library must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXTand a value ofpMultisampleState→sampleShadingEnableequalTRUE, and if a different element ofVkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, thepMultisampleStateused to create each library must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,pMultisampleState→sampleShadingEnableisTRUE, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,pMultisampleStatemust be identically defined to that used to create the library - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrarieswas created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXTand a value ofpMultisampleState→sampleShadingEnableequalTRUE, and ifVkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,pMultisampleStatemust be identically defined to that used to create the library - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element ofVkPipelineLibraryCreateInfoKHR::pLibrariesincludes the other flag, values specified inVkPipelineFragmentShadingRateStateCreateInfoKHRfor both this pipeline and that library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR::pLibrariesincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTand another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified inVkPipelineFragmentShadingRateStateCreateInfoKHRfor both this pipeline and that library must be identical - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,pStagesmust be a valid pointer to an array ofstageCountvalidVkPipelineShaderStageCreateInfostructures - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,layoutmust be a validVkPipelineLayouthandle - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, andrenderPassis notNULL_HANDLE,renderPassmust be a validVkRenderPasshandle - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTorGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,stageCountmust be greater than 0 - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsis non-zero, ifflagsincludesPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR - If
VkPipelineLibraryCreateInfoKHR::pLibrariesincludes more than one library, and any library was created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR - If
VkPipelineLibraryCreateInfoKHR::pLibrariesincludes at least one library,VkGraphicsPipelineLibraryCreateInfoEXT::flagsis non-zero, and any library was created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,flagsmust includePIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR - If the pipeline includes a complete set of state, and there are no libraries included in
VkPipelineLibraryCreateInfoKHR::pLibraries, thenVkPipelineLayoutmust be a valid pipeline layout - If the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a
VkPipelineLayoutcreated withoutPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, thenlayoutmust be compatible with the layouts in those libraries - If
flagsincludesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with aVkPipelineLayoutcreated withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, thenlayoutmust be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion ofPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT - If
flagsdoes not includePIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with aVkPipelineLayoutcreated withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, thenlayoutmust be compatible with the union of the libraries' pipeline layouts - If
conservativePointAndLineRasterizationis 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 ofVkPipelineInputAssemblyStateCreateInfo::topologyisPRIMITIVE_TOPOLOGY_POINT_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST, orPRIMITIVE_TOPOLOGY_LINE_STRIP, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state is not enabled ordynamicPrimitiveTopologyUnrestrictedisFALSE, thenVkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationModemust beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - If
conservativePointAndLineRasterizationis not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either theOutputPointsorOutputLineStripexecution modes,VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationModemust beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - If
conservativePointAndLineRasterizationis not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either theOutputPointsorOutputLinesNVexecution modes,VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationModemust beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - If the pipeline requires pre-rasterization shader state but not fragment shader state, elements of
pStagesmust not havestageset toSHADER_STAGE_FRAGMENT_BIT - If the pipeline requires fragment shader state but not pre-rasterization shader state, elements of
pStagesmust not havestageset to a shader stage which participates in pre-rasterization - If the pipeline requires pre-rasterization shader state, all elements of
pStagesmust have astageset to a shader stage which participates in fragment shader state or pre-rasterization shader state - If the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of
stagemust not be set in more than one element ofpStages - If the
extendedDynamicState3TessellationDomainOriginfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT - If the
extendedDynamicState3DepthClampEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT - If the
extendedDynamicState3PolygonModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_POLYGON_MODE_EXT - If the
extendedDynamicState3RasterizationSamplesfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT - If the
extendedDynamicState3SampleMaskfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_SAMPLE_MASK_EXT - If the
extendedDynamicState3AlphaToCoverageEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT - If the
extendedDynamicState3AlphaToOneEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT - If the
extendedDynamicState3LogicOpEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_LOGIC_OP_ENABLE_EXT - If the
extendedDynamicState3ColorBlendEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT - If the
extendedDynamicState3ColorBlendEquationfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT - If the
extendedDynamicState3ColorWriteMaskfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COLOR_WRITE_MASK_EXT - If the
extendedDynamicState3RasterizationStreamfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_RASTERIZATION_STREAM_EXT - If the
extendedDynamicState3ConservativeRasterizationModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT - If the
extendedDynamicState3ExtraPrimitiveOverestimationSizefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT - If the pipeline requires pre-rasterization shader state,
pDynamicStateincludesDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT, andpDynamicStatedoes not includeDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT,pRasterizationStatemust include aVkPipelineRasterizationConservativeStateCreateInfoEXTin itspNextchain - If the
extendedDynamicState3DepthClipEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT - If the
extendedDynamicState3SampleLocationsEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT - If the
extendedDynamicState3ColorBlendAdvancedfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT - If the
extendedDynamicState3ProvokingVertexModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT - If the
extendedDynamicState3LineRasterizationModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT - If the
extendedDynamicState3LineStippleEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT - If the
extendedDynamicState3DepthClipNegativeOneToOnefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT - If the
extendedDynamicState3ViewportWScalingEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV - If the
extendedDynamicState3ViewportSwizzlefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_VIEWPORT_SWIZZLE_NV - If the
extendedDynamicState3CoverageToColorEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV - If the
extendedDynamicState3CoverageToColorLocationfeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV - If the
extendedDynamicState3CoverageModulationModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV - If the
extendedDynamicState3CoverageModulationTableEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV - If the
extendedDynamicState3CoverageModulationTablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV - If the
extendedDynamicState3CoverageReductionModefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV - If the
extendedDynamicState3RepresentativeFragmentTestEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV - If the
extendedDynamicState3ShadingRateImageEnablefeature is not enabled, there must be no element of thepDynamicStatesmember ofpDynamicStateset toDYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV flagsmust not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXTflagsmust not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV- If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORTorDYNAMIC_STATE_VIEWPORT_WITH_COUNT, and if themultiviewPerViewViewportsfeature is enabled, then the index of the most significant bit in each element ofVkRenderPassMultiviewCreateInfo::pViewMasksmust be less thanpViewportState→viewportCount - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_SCISSORorDYNAMIC_STATE_SCISSOR_WITH_COUNT, and if themultiviewPerViewViewportsfeature is enabled, then the index of the most significant bit in each element ofVkRenderPassMultiviewCreateInfo::pViewMasksmust be less thanpViewportState→scissorCount - If
pStagesincludes a fragment shader stage,DYNAMIC_STATE_DEPTH_WRITE_ENABLEis not set inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpDepthAttachmentReadEXT, thedepthWriteEnablemember ofVkPipelineDepthStencilStateCreateInfomust beFALSE - If
pStagesincludes a fragment shader stage,DYNAMIC_STATE_STENCIL_WRITE_MASKis not set inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpStencilAttachmentReadEXT, the value ofVkStencilOpState::writeMaskfor bothfrontandbackinVkPipelineDepthStencilStateCreateInfomust be 0 - If
renderPassisNULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading,rasterizationSamplesis not dynamic, and thepNextchain includes aVkPipelineRenderingCreateInfostructure,rasterizationSamplesmust be a validVkSampleCountFlagBitsvalue that is set inimageCreateSampleCounts(as defined in Image Creation Limits) for every element ofdepthAttachmentFormat,stencilAttachmentFormatand thepColorAttachmentFormatsarray which is notFORMAT_UNDEFINED - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage inpStages, the pipeline must define vertex input state - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define vertex input state - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage inpStages, the pipeline must either define vertex input state or include that state in a linked pipeline library - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTthe pipeline must define pre-rasterization shader state - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includesDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEor haspRasterizationState→rasterizerDiscardEnableset toFALSE, the pipeline must define fragment shader state - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includesDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEor haspRasterizationState→rasterizerDiscardEnableset toFALSE, the pipeline must define fragment output interface state - If
VkGraphicsPipelineLibraryCreateInfoEXT::flagsincludesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includesDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEor haspRasterizationState→rasterizerDiscardEnableset toFALSE, the pipeline must define fragment output interface state and fragment shader state or include those states in linked pipeline libraries - If
pDynamicState→pDynamicStatesdoes not includeDYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment isFORMAT_E5B9G9R9_UFLOAT_PACK32, thecolorWriteMaskmember of the corresponding element ofpColorBlendState→pAttachmentsmust either include all ofCOLOR_COMPONENT_R_BIT,COLOR_COMPONENT_G_BIT, andCOLOR_COMPONENT_B_BIT, or none of them - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0,VkPipelineRenderingCreateInfo::viewMaskmust be 0 - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE,VkExternalFormatANDROID::externalFormatis not 0, andrasterizationSamplesis not dynamic,VkPipelineMultisampleStateCreateInfo::rasterizationSamplesmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0, andblendEnableis not dynamic, theblendEnablemember of each element ofpColorBlendState→pAttachmentsmust beFALSE - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0, andpDynamicState→pDynamicStatesdoes not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,VkPipelineFragmentShadingRateStateCreateInfoKHR::widthmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0, andpDynamicState→pDynamicStatesdoes not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,VkPipelineFragmentShadingRateStateCreateInfoKHR::heightmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHRbuilt-in - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0,VkPipelineRenderingCreateInfo::colorAttachmentCountmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment shader state and fragment output interface state,renderPassisNULL_HANDLE, andVkExternalFormatANDROID::externalFormatis not 0, the fragment shader must not declare theDepthReplacingorStencilRefReplacingEXTexecution modes - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassis notNULL_HANDLE,subpassincludes an external format resolve attachment, andrasterizationSamplesis not dynamic,VkPipelineMultisampleStateCreateInfo::rasterizationSamplesmust beSAMPLE_COUNT_1_BIT - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassis notNULL_HANDLE,subpassincludes an external format resolve attachment, andblendEnableis not dynamic, theblendEnablemember of each element ofpColorBlendState→pAttachmentsmust beFALSE - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassis notNULL_HANDLE,subpassincludes an external format resolve attachment, andpDynamicState→pDynamicStatesdoes not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,VkPipelineFragmentShadingRateStateCreateInfoKHR::widthmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires fragment output interface state,renderPassis notNULL_HANDLE,subpassincludes an external format resolve attachment, andpDynamicState→pDynamicStatesdoes not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,VkPipelineFragmentShadingRateStateCreateInfoKHR::heightmust be 1 - If the
externalFormatResolvefeature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state,renderPassis notNULL_HANDLE, andsubpassincludes an external format resolve attachment, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHRbuilt-in - If the pipeline is being created with fragment shader state and fragment output state, the value of
renderPassisNULL_HANDLE, andVkRenderingInputAttachmentIndexInfois included,VkRenderingInputAttachmentIndexInfo::colorAttachmentCountmust be equal toVkPipelineRenderingCreateInfo::colorAttachmentCount - If the pipeline is being created with fragment shader state and fragment output state, the value of
renderPassisNULL_HANDLE, andVkRenderingInputAttachmentIndexInfois not included, the fragment shader must not contain any input attachments with aInputAttachmentIndexgreater than or equal toVkPipelineRenderingCreateInfo::colorAttachmentCount - If the pipeline is being created with fragment output state, and the value of
renderPassisNULL_HANDLE,VkRenderingAttachmentLocationInfo::colorAttachmentCountmust be equal toVkPipelineRenderingCreateInfo::colorAttachmentCount
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkAttachmentSampleCountInfoAMD,VkExternalFormatANDROID,VkGraphicsPipelineLibraryCreateInfoEXT,VkGraphicsPipelineShaderGroupsCreateInfoNV,VkMultiviewPerViewAttributesInfoNVX,VkPipelineBinaryInfoKHR,VkPipelineCompilerControlCreateInfoAMD,VkPipelineCreateFlags2CreateInfo,VkPipelineCreationFeedbackCreateInfo,VkPipelineDiscardRectangleStateCreateInfoEXT,VkPipelineFragmentShadingRateEnumStateCreateInfoNV,VkPipelineFragmentShadingRateStateCreateInfoKHR,VkPipelineLibraryCreateInfoKHR,VkPipelineRenderingCreateInfo,VkPipelineRepresentativeFragmentTestStateCreateInfoNV,VkPipelineRobustnessCreateInfo,VkRenderingAttachmentLocationInfo, orVkRenderingInputAttachmentIndexInfo - The
sTypevalue of each struct in thepNextchain must be unique - If
pDynamicStateis notNULL,pDynamicStatemust be a valid pointer to a validVkPipelineDynamicStateCreateInfostructure - Each of
basePipelineHandle,layout, andrenderPassthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkPipelineColorBlendStateCreateInfo, VkPipelineDepthStencilStateCreateInfo, VkPipelineDynamicStateCreateInfo, VkPipelineInputAssemblyStateCreateInfo, VkPipelineMultisampleStateCreateInfo, VkPipelineRasterizationStateCreateInfo, VkPipelineShaderStageCreateInfo, VkPipelineTessellationStateCreateInfo, VkPipelineVertexInputStateCreateInfo, VkPipelineViewportStateCreateInfo, CreateGraphicsPipelines
Layout
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();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkGraphicsPipelineCreateInfo(ByteBuffer container) Creates aVkGraphicsPipelineCreateInfoinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionlonga pipeline to derive from.basePipelineHandle(long value) Sets the specified value to thebasePipelineHandle()field.intan index into thepCreateInfosparameter to use as a pipeline to derive from.basePipelineIndex(int value) Sets the specified value to thebasePipelineIndex()field.static VkGraphicsPipelineCreateInfocalloc()Returns a newVkGraphicsPipelineCreateInfoinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkGraphicsPipelineCreateInfocalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkGraphicsPipelineCreateInfoDeprecated.callocStack(int capacity) Deprecated.callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfocallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfocreate()Returns a newVkGraphicsPipelineCreateInfoinstance allocated withBufferUtils.create(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withBufferUtils.static VkGraphicsPipelineCreateInfocreate(long address) Returns a newVkGraphicsPipelineCreateInfoinstance for the specified memory address.create(long address, int capacity) Create aVkGraphicsPipelineCreateInfo.Bufferinstance at the specified memory.static @Nullable VkGraphicsPipelineCreateInfocreateSafe(long address) static @Nullable VkGraphicsPipelineCreateInfo.BuffercreateSafe(long address, int capacity) intflags()a bitmask ofVkPipelineCreateFlagBitsspecifying how the pipeline will be generated.flags(int value) Sets the specified value to theflags()field.longlayout()the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.layout(long value) Sets the specified value to thelayout()field.static VkGraphicsPipelineCreateInfomalloc()Returns a newVkGraphicsPipelineCreateInfoinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.static VkGraphicsPipelineCreateInfomalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfoinstance allocated on the specifiedMemoryStack.static VkGraphicsPipelineCreateInfoDeprecated.mallocStack(int capacity) Deprecated.mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfomallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static longnbasePipelineHandle(long struct) Unsafe version ofbasePipelineHandle().static voidnbasePipelineHandle(long struct, long value) Unsafe version ofbasePipelineHandle.static intnbasePipelineIndex(long struct) Unsafe version ofbasePipelineIndex().static voidnbasePipelineIndex(long struct, int value) Unsafe version ofbasePipelineIndex.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static longnlayout(long struct) Unsafe version oflayout().static voidnlayout(long struct, long value) Unsafe version oflayout.static @Nullable VkPipelineColorBlendStateCreateInfonpColorBlendState(long struct) Unsafe version ofpColorBlendState().static voidnpColorBlendState(long struct, @Nullable VkPipelineColorBlendStateCreateInfo value) Unsafe version ofpColorBlendState.static @Nullable VkPipelineDepthStencilStateCreateInfonpDepthStencilState(long struct) Unsafe version ofpDepthStencilState().static voidnpDepthStencilState(long struct, @Nullable VkPipelineDepthStencilStateCreateInfo value) Unsafe version ofpDepthStencilState.static @Nullable VkPipelineDynamicStateCreateInfonpDynamicState(long struct) Unsafe version ofpDynamicState().static voidnpDynamicState(long struct, @Nullable VkPipelineDynamicStateCreateInfo value) Unsafe version ofpDynamicState.static @Nullable VkPipelineInputAssemblyStateCreateInfonpInputAssemblyState(long struct) Unsafe version ofpInputAssemblyState().static voidnpInputAssemblyState(long struct, @Nullable VkPipelineInputAssemblyStateCreateInfo value) Unsafe version ofpInputAssemblyState.static @Nullable VkPipelineMultisampleStateCreateInfonpMultisampleState(long struct) Unsafe version ofpMultisampleState().static voidnpMultisampleState(long struct, @Nullable VkPipelineMultisampleStateCreateInfo value) Unsafe version ofpMultisampleState.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static @Nullable VkPipelineRasterizationStateCreateInfonpRasterizationState(long struct) Unsafe version ofpRasterizationState().static voidnpRasterizationState(long struct, @Nullable VkPipelineRasterizationStateCreateInfo value) Unsafe version ofpRasterizationState.static @Nullable VkPipelineShaderStageCreateInfo.BuffernpStages(long struct) Unsafe version ofpStages().static voidnpStages(long struct, @Nullable VkPipelineShaderStageCreateInfo.Buffer value) Unsafe version ofpStages.static @Nullable VkPipelineTessellationStateCreateInfonpTessellationState(long struct) Unsafe version ofpTessellationState().static voidnpTessellationState(long struct, @Nullable VkPipelineTessellationStateCreateInfo value) Unsafe version ofpTessellationState.static @Nullable VkPipelineVertexInputStateCreateInfonpVertexInputState(long struct) Unsafe version ofpVertexInputState().static voidnpVertexInputState(long struct, @Nullable VkPipelineVertexInputStateCreateInfo value) Unsafe version ofpVertexInputState.static @Nullable VkPipelineViewportStateCreateInfonpViewportState(long struct) Unsafe version ofpViewportState().static voidnpViewportState(long struct, @Nullable VkPipelineViewportStateCreateInfo value) Unsafe version ofpViewportState.static longnrenderPass(long struct) Unsafe version ofrenderPass().static voidnrenderPass(long struct, long value) Unsafe version ofrenderPass.static intnstageCount(long struct) Unsafe version ofstageCount().static voidnstageCount(long struct, int value) Sets the specified value to thestageCountfield of the specifiedstruct.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.static intnsubpass(long struct) Unsafe version ofsubpass().static voidnsubpass(long struct, int value) Unsafe version ofsubpass.@Nullable VkPipelineColorBlendStateCreateInfoa pointer to aVkPipelineColorBlendStateCreateInfostructure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering.pColorBlendState(@Nullable VkPipelineColorBlendStateCreateInfo value) Sets the address of the specifiedVkPipelineColorBlendStateCreateInfoto thepColorBlendState()field.@Nullable VkPipelineDepthStencilStateCreateInfoa pointer to aVkPipelineDepthStencilStateCreateInfostructure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering.pDepthStencilState(@Nullable VkPipelineDepthStencilStateCreateInfo value) Sets the address of the specifiedVkPipelineDepthStencilStateCreateInfoto thepDepthStencilState()field.@Nullable VkPipelineDynamicStateCreateInfoa pointer to aVkPipelineDynamicStateCreateInfostructure defining which properties of the pipeline state object are dynamic and can be changed independently of the pipeline state.pDynamicState(@Nullable VkPipelineDynamicStateCreateInfo value) Sets the address of the specifiedVkPipelineDynamicStateCreateInfoto thepDynamicState()field.@Nullable VkPipelineInputAssemblyStateCreateInfoa pointer to aVkPipelineInputAssemblyStateCreateInfostructure which determines input assembly behavior for vertex shading, as described in Drawing Commands.pInputAssemblyState(@Nullable VkPipelineInputAssemblyStateCreateInfo value) Sets the address of the specifiedVkPipelineInputAssemblyStateCreateInfoto thepInputAssemblyState()field.@Nullable VkPipelineMultisampleStateCreateInfoa pointer to aVkPipelineMultisampleStateCreateInfostructure defining multisample state used when rasterization is enabled.pMultisampleState(@Nullable VkPipelineMultisampleStateCreateInfo value) Sets the address of the specifiedVkPipelineMultisampleStateCreateInfoto thepMultisampleState()field.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.Prepends the specifiedVkAttachmentSampleCountInfoAMDvalue to thepNextchain.Prepends the specifiedVkAttachmentSampleCountInfoNVvalue to thepNextchain.pNext(VkExternalFormatANDROID value) Prepends the specifiedVkExternalFormatANDROIDvalue to thepNextchain.Prepends the specifiedVkGraphicsPipelineLibraryCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkGraphicsPipelineShaderGroupsCreateInfoNVvalue to thepNextchain.Prepends the specifiedVkMultiviewPerViewAttributesInfoNVXvalue to thepNextchain.pNext(VkPipelineBinaryInfoKHR value) Prepends the specifiedVkPipelineBinaryInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain.Prepends the specifiedVkPipelineCreateFlags2CreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkPipelineDiscardRectangleStateCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkPipelineFragmentShadingRateEnumStateCreateInfoNVvalue to thepNextchain.Prepends the specifiedVkPipelineFragmentShadingRateStateCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineLibraryCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineRenderingCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineRenderingCreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineRepresentativeFragmentTestStateCreateInfoNVvalue to thepNextchain.Prepends the specifiedVkPipelineRobustnessCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineRobustnessCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkRenderingAttachmentLocationInfovalue to thepNextchain.Prepends the specifiedVkRenderingAttachmentLocationInfoKHRvalue to thepNextchain.Prepends the specifiedVkRenderingInputAttachmentIndexInfovalue to thepNextchain.Prepends the specifiedVkRenderingInputAttachmentIndexInfoKHRvalue to thepNextchain.@Nullable VkPipelineRasterizationStateCreateInfoa pointer to aVkPipelineRasterizationStateCreateInfostructure defining rasterization state.pRasterizationState(@Nullable VkPipelineRasterizationStateCreateInfo value) Sets the address of the specifiedVkPipelineRasterizationStateCreateInfoto thepRasterizationState()field.@Nullable VkPipelineShaderStageCreateInfo.BufferpStages()a pointer to an array ofstageCountVkPipelineShaderStageCreateInfostructures describing the set of the shader stages to be included in the graphics pipeline.pStages(@Nullable VkPipelineShaderStageCreateInfo.Buffer value) Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Bufferto thepStages()field.@Nullable VkPipelineTessellationStateCreateInfoa pointer to aVkPipelineTessellationStateCreateInfostructure defining tessellation state used by tessellation shaders.pTessellationState(@Nullable VkPipelineTessellationStateCreateInfo value) Sets the address of the specifiedVkPipelineTessellationStateCreateInfoto thepTessellationState()field.@Nullable VkPipelineVertexInputStateCreateInfoa pointer to aVkPipelineVertexInputStateCreateInfostructure.pVertexInputState(@Nullable VkPipelineVertexInputStateCreateInfo value) Sets the address of the specifiedVkPipelineVertexInputStateCreateInfoto thepVertexInputState()field.@Nullable VkPipelineViewportStateCreateInfoa pointer to aVkPipelineViewportStateCreateInfostructure defining viewport state used when rasterization is enabled.pViewportState(@Nullable VkPipelineViewportStateCreateInfo value) Sets the address of the specifiedVkPipelineViewportStateCreateInfoto thepViewportState()field.longa handle to a render pass object describing the environment in which the pipeline will be used.renderPass(long value) Sets the specified value to therenderPass()field.set(int sType, long pNext, int flags, int stageCount, @Nullable VkPipelineShaderStageCreateInfo.Buffer pStages, @Nullable VkPipelineVertexInputStateCreateInfo pVertexInputState, @Nullable VkPipelineInputAssemblyStateCreateInfo pInputAssemblyState, @Nullable VkPipelineTessellationStateCreateInfo pTessellationState, @Nullable VkPipelineViewportStateCreateInfo pViewportState, @Nullable VkPipelineRasterizationStateCreateInfo pRasterizationState, @Nullable VkPipelineMultisampleStateCreateInfo pMultisampleState, @Nullable VkPipelineDepthStencilStateCreateInfo pDepthStencilState, @Nullable VkPipelineColorBlendStateCreateInfo pColorBlendState, @Nullable VkPipelineDynamicStateCreateInfo pDynamicState, long layout, long renderPass, int subpass, long basePipelineHandle, int basePipelineIndex) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()intthe number of entries in thepStagesarray.stageCount(int value) Sets the specified value to thestageCount()field.intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFOvalue to thesType()field.intsubpass()the index of the subpass in the render pass where this pipeline will be used.subpass(int value) Sets the specified value to thesubpass()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
STAGECOUNT
public static final int STAGECOUNTThe struct member offsets. -
PSTAGES
public static final int PSTAGESThe struct member offsets. -
PVERTEXINPUTSTATE
public static final int PVERTEXINPUTSTATEThe struct member offsets. -
PINPUTASSEMBLYSTATE
public static final int PINPUTASSEMBLYSTATEThe struct member offsets. -
PTESSELLATIONSTATE
public static final int PTESSELLATIONSTATEThe struct member offsets. -
PVIEWPORTSTATE
public static final int PVIEWPORTSTATEThe struct member offsets. -
PRASTERIZATIONSTATE
public static final int PRASTERIZATIONSTATEThe struct member offsets. -
PMULTISAMPLESTATE
public static final int PMULTISAMPLESTATEThe struct member offsets. -
PDEPTHSTENCILSTATE
public static final int PDEPTHSTENCILSTATEThe struct member offsets. -
PCOLORBLENDSTATE
public static final int PCOLORBLENDSTATEThe struct member offsets. -
PDYNAMICSTATE
public static final int PDYNAMICSTATEThe struct member offsets. -
LAYOUT
public static final int LAYOUTThe struct member offsets. -
RENDERPASS
public static final int RENDERPASSThe struct member offsets. -
SUBPASS
public static final int SUBPASSThe struct member offsets. -
BASEPIPELINEHANDLE
public static final int BASEPIPELINEHANDLEThe struct member offsets. -
BASEPIPELINEINDEX
public static final int BASEPIPELINEINDEXThe struct member offsets.
-
-
Constructor Details
-
VkGraphicsPipelineCreateInfo
Creates aVkGraphicsPipelineCreateInfoinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkGraphicsPipelineCreateInfo>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkPipelineCreateFlagBitsspecifying how the pipeline will be generated. -
stageCount
public int stageCount()the number of entries in thepStagesarray. -
pStages
a pointer to an array ofstageCountVkPipelineShaderStageCreateInfostructures describing the set of the shader stages to be included in the graphics pipeline. -
pVertexInputState
a pointer to aVkPipelineVertexInputStateCreateInfostructure. It is ignored if the pipeline includes a mesh shader stage. It can beNULLif the pipeline is created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state set. -
pInputAssemblyState
a pointer to aVkPipelineInputAssemblyStateCreateInfostructure which determines input assembly behavior for vertex shading, as described in Drawing Commands. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with bothDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, andDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic states set anddynamicPrimitiveTopologyUnrestrictedisTRUE. It is ignored if the pipeline includes a mesh shader stage. -
pTessellationState
a pointer to aVkPipelineTessellationStateCreateInfostructure defining tessellation state used by tessellation shaders. It can beNULLif the pipeline is created with theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTdynamic state set. -
pViewportState
a pointer to aVkPipelineViewportStateCreateInfostructure defining viewport state used when rasterization is enabled. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with bothDYNAMIC_STATE_VIEWPORT_WITH_COUNT, andDYNAMIC_STATE_SCISSOR_WITH_COUNTdynamic states set. -
pRasterizationState
a pointer to aVkPipelineRasterizationStateCreateInfostructure defining rasterization state. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with all ofDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,DYNAMIC_STATE_POLYGON_MODE_EXT,DYNAMIC_STATE_CULL_MODE,DYNAMIC_STATE_FRONT_FACE,DYNAMIC_STATE_DEPTH_BIAS_ENABLE,DYNAMIC_STATE_DEPTH_BIAS, andDYNAMIC_STATE_LINE_WIDTHdynamic states set. -
pMultisampleState
a pointer to aVkPipelineMultisampleStateCreateInfostructure defining multisample state used when rasterization is enabled. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with all ofDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,DYNAMIC_STATE_SAMPLE_MASK_EXT, andDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic states set, and either the alphaToOne feature is not enabled orDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTis set, in which caseVkPipelineMultisampleStateCreateInfo::sampleShadingEnableis assumed to beFALSE. -
pDepthStencilState
a pointer to aVkPipelineDepthStencilStateCreateInfostructure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with all ofDYNAMIC_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, andDYNAMIC_STATE_DEPTH_BOUNDSdynamic states set. -
pColorBlendState
a pointer to aVkPipelineColorBlendStateCreateInfostructure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering. If theVK_EXT_extended_dynamic_state3extension is enabled, it can beNULLif the pipeline is created with all ofDYNAMIC_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, andDYNAMIC_STATE_BLEND_CONSTANTSdynamic states set. -
pDynamicState
a pointer to aVkPipelineDynamicStateCreateInfostructure 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. -
layout
public long layout()the description of binding locations used by both the pipeline and descriptor sets used with the pipeline. -
renderPass
public long renderPass()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. -
subpass
public int subpass()the index of the subpass in the render pass where this pipeline will be used. -
basePipelineHandle
public long basePipelineHandle()a pipeline to derive from. -
basePipelineIndex
public int basePipelineIndex()an index into thepCreateInfosparameter to use as a pipeline to derive from. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFOvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNext
Prepends the specifiedVkAttachmentSampleCountInfoAMDvalue to thepNextchain. -
pNext
Prepends the specifiedVkAttachmentSampleCountInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkExternalFormatANDROIDvalue to thepNextchain. -
pNext
Prepends the specifiedVkGraphicsPipelineLibraryCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkGraphicsPipelineShaderGroupsCreateInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkMultiviewPerViewAttributesInfoNVXvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineBinaryInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreateFlags2CreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineDiscardRectangleStateCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineFragmentShadingRateEnumStateCreateInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineFragmentShadingRateStateCreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineLibraryCreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRenderingCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRenderingCreateInfoKHRvalue to thepNextchain. -
pNext
public VkGraphicsPipelineCreateInfo pNext(VkPipelineRepresentativeFragmentTestStateCreateInfoNV value) Prepends the specifiedVkPipelineRepresentativeFragmentTestStateCreateInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRobustnessCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRobustnessCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkRenderingAttachmentLocationInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkRenderingAttachmentLocationInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkRenderingInputAttachmentIndexInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkRenderingInputAttachmentIndexInfoKHRvalue to thepNextchain. -
flags
Sets the specified value to theflags()field. -
stageCount
Sets the specified value to thestageCount()field. -
pStages
Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Bufferto thepStages()field. -
pVertexInputState
public VkGraphicsPipelineCreateInfo pVertexInputState(@Nullable VkPipelineVertexInputStateCreateInfo value) Sets the address of the specifiedVkPipelineVertexInputStateCreateInfoto thepVertexInputState()field. -
pInputAssemblyState
public VkGraphicsPipelineCreateInfo pInputAssemblyState(@Nullable VkPipelineInputAssemblyStateCreateInfo value) Sets the address of the specifiedVkPipelineInputAssemblyStateCreateInfoto thepInputAssemblyState()field. -
pTessellationState
public VkGraphicsPipelineCreateInfo pTessellationState(@Nullable VkPipelineTessellationStateCreateInfo value) Sets the address of the specifiedVkPipelineTessellationStateCreateInfoto thepTessellationState()field. -
pViewportState
public VkGraphicsPipelineCreateInfo pViewportState(@Nullable VkPipelineViewportStateCreateInfo value) Sets the address of the specifiedVkPipelineViewportStateCreateInfoto thepViewportState()field. -
pRasterizationState
public VkGraphicsPipelineCreateInfo pRasterizationState(@Nullable VkPipelineRasterizationStateCreateInfo value) Sets the address of the specifiedVkPipelineRasterizationStateCreateInfoto thepRasterizationState()field. -
pMultisampleState
public VkGraphicsPipelineCreateInfo pMultisampleState(@Nullable VkPipelineMultisampleStateCreateInfo value) Sets the address of the specifiedVkPipelineMultisampleStateCreateInfoto thepMultisampleState()field. -
pDepthStencilState
public VkGraphicsPipelineCreateInfo pDepthStencilState(@Nullable VkPipelineDepthStencilStateCreateInfo value) Sets the address of the specifiedVkPipelineDepthStencilStateCreateInfoto thepDepthStencilState()field. -
pColorBlendState
public VkGraphicsPipelineCreateInfo pColorBlendState(@Nullable VkPipelineColorBlendStateCreateInfo value) Sets the address of the specifiedVkPipelineColorBlendStateCreateInfoto thepColorBlendState()field. -
pDynamicState
Sets the address of the specifiedVkPipelineDynamicStateCreateInfoto thepDynamicState()field. -
layout
Sets the specified value to thelayout()field. -
renderPass
Sets the specified value to therenderPass()field. -
subpass
Sets the specified value to thesubpass()field. -
basePipelineHandle
Sets the specified value to thebasePipelineHandle()field. -
basePipelineIndex
Sets the specified value to thebasePipelineIndex()field. -
set
public VkGraphicsPipelineCreateInfo set(int sType, long pNext, int flags, int stageCount, @Nullable VkPipelineShaderStageCreateInfo.Buffer pStages, @Nullable VkPipelineVertexInputStateCreateInfo pVertexInputState, @Nullable VkPipelineInputAssemblyStateCreateInfo pInputAssemblyState, @Nullable VkPipelineTessellationStateCreateInfo pTessellationState, @Nullable VkPipelineViewportStateCreateInfo pViewportState, @Nullable VkPipelineRasterizationStateCreateInfo pRasterizationState, @Nullable VkPipelineMultisampleStateCreateInfo pMultisampleState, @Nullable VkPipelineDepthStencilStateCreateInfo pDepthStencilState, @Nullable VkPipelineColorBlendStateCreateInfo pColorBlendState, @Nullable VkPipelineDynamicStateCreateInfo pDynamicState, long layout, long renderPass, int subpass, long basePipelineHandle, int basePipelineIndex) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkGraphicsPipelineCreateInfoinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkGraphicsPipelineCreateInfoinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkGraphicsPipelineCreateInfoinstance allocated withBufferUtils. -
create
Returns a newVkGraphicsPipelineCreateInfoinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkGraphicsPipelineCreateInfo.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
@Deprecated public static VkGraphicsPipelineCreateInfo mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
@Deprecated public static VkGraphicsPipelineCreateInfo callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkGraphicsPipelineCreateInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkGraphicsPipelineCreateInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkGraphicsPipelineCreateInfoinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkGraphicsPipelineCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkGraphicsPipelineCreateInfo.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkGraphicsPipelineCreateInfo.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nstageCount
public static int nstageCount(long struct) Unsafe version ofstageCount(). -
npStages
Unsafe version ofpStages(). -
npVertexInputState
Unsafe version ofpVertexInputState(). -
npInputAssemblyState
Unsafe version ofpInputAssemblyState(). -
npTessellationState
Unsafe version ofpTessellationState(). -
npViewportState
Unsafe version ofpViewportState(). -
npRasterizationState
Unsafe version ofpRasterizationState(). -
npMultisampleState
Unsafe version ofpMultisampleState(). -
npDepthStencilState
Unsafe version ofpDepthStencilState(). -
npColorBlendState
Unsafe version ofpColorBlendState(). -
npDynamicState
Unsafe version ofpDynamicState(). -
nlayout
public static long nlayout(long struct) Unsafe version oflayout(). -
nrenderPass
public static long nrenderPass(long struct) Unsafe version ofrenderPass(). -
nsubpass
public static int nsubpass(long struct) Unsafe version ofsubpass(). -
nbasePipelineHandle
public static long nbasePipelineHandle(long struct) Unsafe version ofbasePipelineHandle(). -
nbasePipelineIndex
public static int nbasePipelineIndex(long struct) Unsafe version ofbasePipelineIndex(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nstageCount
public static void nstageCount(long struct, int value) Sets the specified value to thestageCountfield of the specifiedstruct. -
npStages
Unsafe version ofpStages. -
npVertexInputState
public static void npVertexInputState(long struct, @Nullable VkPipelineVertexInputStateCreateInfo value) Unsafe version ofpVertexInputState. -
npInputAssemblyState
public static void npInputAssemblyState(long struct, @Nullable VkPipelineInputAssemblyStateCreateInfo value) Unsafe version ofpInputAssemblyState. -
npTessellationState
public static void npTessellationState(long struct, @Nullable VkPipelineTessellationStateCreateInfo value) Unsafe version ofpTessellationState. -
npViewportState
Unsafe version ofpViewportState. -
npRasterizationState
public static void npRasterizationState(long struct, @Nullable VkPipelineRasterizationStateCreateInfo value) Unsafe version ofpRasterizationState. -
npMultisampleState
public static void npMultisampleState(long struct, @Nullable VkPipelineMultisampleStateCreateInfo value) Unsafe version ofpMultisampleState. -
npDepthStencilState
public static void npDepthStencilState(long struct, @Nullable VkPipelineDepthStencilStateCreateInfo value) Unsafe version ofpDepthStencilState. -
npColorBlendState
public static void npColorBlendState(long struct, @Nullable VkPipelineColorBlendStateCreateInfo value) Unsafe version ofpColorBlendState. -
npDynamicState
Unsafe version ofpDynamicState. -
nlayout
public static void nlayout(long struct, long value) Unsafe version oflayout. -
nrenderPass
public static void nrenderPass(long struct, long value) Unsafe version ofrenderPass. -
nsubpass
public static void nsubpass(long struct, int value) Unsafe version ofsubpass. -
nbasePipelineHandle
public static void nbasePipelineHandle(long struct, long value) Unsafe version ofbasePipelineHandle. -
nbasePipelineIndex
public static void nbasePipelineIndex(long struct, int value) Unsafe version ofbasePipelineIndex. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-