Class VkGraphicsPipelineCreateInfo
- All Implemented Interfaces:
AutoCloseable
,NativeResource
,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:
VkPipelineShaderStageCreateInfo
entries 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_EXT
was specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was not specified, the full pipeline layout must be specified.
- If
VkPipelineViewportStateCreateInfo
VkPipelineRasterizationStateCreateInfo
VkPipelineTessellationStateCreateInfo
VkRenderPass
andsubpass
parameter- The
viewMask
parameter ofVkPipelineRenderingCreateInfo
(formats are ignored) VkPipelineDiscardRectangleStateCreateInfoEXT
VkPipelineFragmentShadingRateStateCreateInfoKHR
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
VkPipelineShaderStageCreateInfo
entry for the fragment shader - Within the
VkPipelineLayout
, all descriptor sets with fragment shader bindings ifPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was not specified, the full pipeline layout must be specified.
- If
VkPipelineMultisampleStateCreateInfo
if sample shading is enabled orrenderpass
is notNULL_HANDLE
VkPipelineDepthStencilStateCreateInfo
VkRenderPass
andsubpass
parameter- The
viewMask
parameter ofVkPipelineRenderingCreateInfo
(formats are ignored) VkPipelineFragmentShadingRateStateCreateInfoKHR
VkPipelineFragmentShadingRateEnumStateCreateInfoNV
VkPipelineRepresentativeFragmentTestStateCreateInfoNV
- Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
flag - Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
flag
If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable
is set to FALSE
or DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
is used, this state must be specified to create a complete graphics pipeline.
If a pipeline includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
in VkGraphicsPipelineLibraryCreateInfoEXT
::flags
either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.
Fragment output state is defined by:
VkPipelineColorBlendStateCreateInfo
VkRenderPass
andsubpass
parameterVkPipelineMultisampleStateCreateInfo
VkPipelineRenderingCreateInfo
VkAttachmentSampleCountInfoAMD
VkAttachmentSampleCountInfoNV
VkExternalFormatANDROID
- Inclusion/omission of the
PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
andPIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
flags
If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and rasterizerDiscardEnable
is set to FALSE
or DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
is used, this state must be specified to create a complete graphics pipeline.
If a pipeline includes GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
in VkGraphicsPipelineLibraryCreateInfoEXT
::flags
either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.
Dynamic state values set via pDynamicState
must be ignored if the state they correspond to is not otherwise statically set by one of the state subsets used to create the pipeline. Additionally, setting dynamic state values must not modify whether state in a linked library is static or dynamic; this is set and unchangeable when the library is created. For example, if a pipeline only included pre-rasterization shader state, then any dynamic state value corresponding to depth or stencil testing has no effect. Any linked library that has dynamic state enabled that same dynamic state must also be enabled in all the other linked libraries to which that dynamic state applies.
A complete graphics pipeline always includes pre-rasterization shader state, with other subsets included depending on that state as specified in the above sections.
If different subsets are linked together with pipeline layouts created with PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, the final effective pipeline layout is effectively the union of the linked pipeline layouts. When binding descriptor sets for this pipeline, the pipeline layout used must be compatible with this union. This pipeline layout can be overridden when linking with PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
by providing a VkPipelineLayout
that is compatible with this union other than PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, or when linking without PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
by providing a VkPipelineLayout
that is fully compatible with this union.
If a VkPipelineCreateFlags2CreateInfoKHR
structure is present in the pNext
chain, VkPipelineCreateFlags2CreateInfoKHR
::flags
from that structure is used instead of flags
from this structure.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid graphicsVkPipeline
handle - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag,basePipelineIndex
must be -1 orbasePipelineHandle
must beNULL_HANDLE
- If a push constant block is declared in a shader, a push constant range in
layout
must match both the shader stage and range - If a resource variables is declared in a shader, a descriptor slot in
layout
must match the shader stage - If a resource variables is declared in a shader, and the descriptor type is not
DESCRIPTOR_TYPE_MUTABLE_EXT
, a descriptor slot inlayout
must match the descriptor type - If a resource variables is declared in a shader as an array, a descriptor slot in
layout
must match the descriptor count - If the pipeline requires pre-rasterization shader state the
stage
member of one element ofpStages
must beSHADER_STAGE_VERTEX_BIT
orSHADER_STAGE_MESH_BIT_EXT
- If the pipeline requires pre-rasterization shader state the geometric shader stages provided in
pStages
must be either from the mesh shading pipeline (stage
isSHADER_STAGE_TASK_BIT_EXT
orSHADER_STAGE_MESH_BIT_EXT
) or from the primitive shading pipeline (stage
isSHADER_STAGE_VERTEX_BIT
,SHADER_STAGE_TESSELLATION_CONTROL_BIT
,SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, orSHADER_STAGE_GEOMETRY_BIT
) - The shader stages for
SHADER_STAGE_TASK_BIT_EXT
orSHADER_STAGE_MESH_BIT_EXT
must use either theTaskNV
andMeshNV
Execution
Model
or theTaskEXT
andMeshEXT
Execution
Model
, but must not use both - If the pipeline requires pre-rasterization shader state and
pStages
includes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If the pipeline requires pre-rasterization shader state and
pStages
includes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If the pipeline requires pre-rasterization shader state and
pStages
includes a tessellation control shader stage, and theVK_EXT_extended_dynamic_state3
extension is not enabled or theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
dynamic state is not set,pTessellationState
must be a valid pointer to a validVkPipelineTessellationStateCreateInfo
structure - If
pTessellationState
is notNULL
it must be a pointer to a validVkPipelineTessellationStateCreateInfo
structure - If the pipeline requires pre-rasterization shader state and
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction specifying the type of subdivision in the pipeline - If the pipeline requires pre-rasterization shader state and
pStages
includes tessellation shader stages, and the shader code of both stages contain anOpExecutionMode
instruction 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
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction specifying the output patch size in the pipeline - If the pipeline requires pre-rasterization shader state and
pStages
includes tessellation shader stages, and the shader code of both contain anOpExecutionMode
instruction 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
pStages
includes tessellation shader stages, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled ordynamicPrimitiveTopologyUnrestricted
isFALSE
, thetopology
member ofpInputAssembly
must bePRIMITIVE_TOPOLOGY_PATCH_LIST
- If the pipeline is being created with pre-rasterization shader state and vertex input state and the
topology
member ofpInputAssembly
isPRIMITIVE_TOPOLOGY_PATCH_LIST
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled ordynamicPrimitiveTopologyUnrestricted
isFALSE
, thenpStages
must include tessellation shader stages - If the pipeline is being created with a
TessellationEvaluation
Execution
Model
, noGeometry
Execution
Model
, uses thePointMode
Execution
Mode
, andshaderTessellationAndGeometryPointSize
is enabled, aPointSize
decorated variable must be written to ifmaintenance5
is not enabled - If the pipeline is being created with a
Vertex
Execution
Model
and noTessellationEvaluation
orGeometry
Execution
Model
, and thetopology
member ofpInputAssembly
isPRIMITIVE_TOPOLOGY_POINT_LIST
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled ordynamicPrimitiveTopologyUnrestricted
isFALSE
, aPointSize
decorated variable must be written to ifmaintenance5
is not enabled - If
maintenance5
is enabled and aPointSize
decorated variable is written to, all execution paths must write to aPointSize
decorated variable - If the pipeline is being created with a
TessellationEvaluation
Execution
Model
, noGeometry
Execution
Model
, uses thePointMode
Execution
Mode
, andshaderTessellationAndGeometryPointSize
is not enabled, aPointSize
decorated variable must not be written to - If the pipeline is being created with a
Geometry
Execution
Model
, uses theOutputPoints
Execution
Mode
, andshaderTessellationAndGeometryPointSize
is enabled, aPointSize
decorated variable must be written to for every vertex emitted ifmaintenance5
is not enabled - If the pipeline is being created with a
Geometry
Execution
Model
, uses theOutputPoints
Execution
Mode
, andshaderTessellationAndGeometryPointSize
is not enabled, aPointSize
decorated variable must not be written to - If the pipeline requires pre-rasterization shader state and
pStages
includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionMode
instruction specifying an input primitive type that is compatible with the primitive topology specified inpInputAssembly
- If the pipeline requires pre-rasterization shader state and
pStages
includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionMode
instruction 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
renderPass
is notNULL_HANDLE
and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined asATTACHMENT_UNUSED
insubpass
- 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 thosepStages
and 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
renderPass
is 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 theblendEnable
member of the corresponding element of thepAttachments
member ofpColorBlendState
must beFALSE
- If
renderPass
is notNULL_HANDLE
, and the pipeline is being created with fragment output interface state, and thepColorBlendState
pointer is notNULL
, and the subpass uses color attachments, theattachmentCount
member ofpColorBlendState
must be equal to thecolorAttachmentCount
used to createsubpass
- If the pipeline requires pre-rasterization shader state, and
pViewportState→pViewports
is not dynamic, thenpViewportState→pViewports
must be a valid pointer to an array ofpViewportState→viewportCount
validVkViewport
structures - If the pipeline requires pre-rasterization shader state, and
pViewportState→pScissors
is not dynamic, thenpViewportState→pScissors
must be a valid pointer to an array ofpViewportState→scissorCount
VkRect2D
structures - If the pipeline requires pre-rasterization shader state, and the
wideLines
feature is not enabled, and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_WIDTH
, thelineWidth
member ofpRasterizationState
must be1.0
- If the pipeline requires pre-rasterization shader state, and the
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
dynamic state is enabled or therasterizerDiscardEnable
member ofpRasterizationState
isFALSE
, and either theVK_EXT_extended_dynamic_state3
extension is not enabled, or either theDYNAMIC_STATE_VIEWPORT_WITH_COUNT
orDYNAMIC_STATE_SCISSOR_WITH_COUNT
dynamic states are not set,pViewportState
must be a valid pointer to a validVkPipelineViewportStateCreateInfo
structure - If
pViewportState
is notNULL
it must be a valid pointer to a validVkPipelineViewportStateCreateInfo
structure - If the pipeline requires pre-rasterization shader state, and the graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
dynamic state enabled,pViewportState
must be a valid pointer to a validVkPipelineViewportStateCreateInfo
structure - If the pipeline requires fragment output interface state, and the
VK_EXT_extended_dynamic_state3
extension is not enabled or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states is not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set,pMultisampleState
must be a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If
pMultisampleState
is notNULL
is must be a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If the pipeline is being created with fragment shader state, the
VkPipelineMultisampleStateCreateInfo
::alphaToCoverageEnable
is not ignored and isTRUE
, then the Fragment Output Interface must contain a variable for the alphaComponent
word inLocation
0 atIndex
0 - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with fragment shader state, andsubpass
uses a depth/stencil attachment, and theVK_EXT_extended_dynamic_state3
extension 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_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with fragment output interface state, andsubpass
uses color attachments, andVK_EXT_extended_dynamic_state3
extension 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_CONSTANTS
dynamic states are not set,pColorBlendState
must be a valid pointer to a validVkPipelineColorBlendStateCreateInfo
structure - If the pipeline requires pre-rasterization shader state, the
depthBiasClamp
feature is not enabled, no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BIAS
, and thedepthBiasEnable
member ofpRasterizationState
isTRUE
, thedepthBiasClamp
member ofpRasterizationState
must be0.0
- If the pipeline requires fragment shader state, and the
VK_EXT_depth_range_unrestricted
extension is not enabled and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BOUNDS
, and thedepthBoundsTestEnable
member ofpDepthStencilState
isTRUE
, theminDepthBounds
andmaxDepthBounds
members ofpDepthStencilState
must be between0.0
and1.0
, inclusive - If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
included in thepNext
chain ofpMultisampleState
isTRUE
,sampleLocationsInfo.sampleLocationGridSize.width
must evenly divideVkMultisamplePropertiesEXT
::sampleLocationGridSize.width
as returned byGetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
the included in thepNext
chain ofpMultisampleState
isTRUE
orDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
is used,sampleLocationsInfo.sampleLocationGridSize.height
must evenly divideVkMultisamplePropertiesEXT
::sampleLocationGridSize.height
as returned byGetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If the pipeline requires fragment shader state or fragment output interface state, and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andVkPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
included in thepNext
chain ofpMultisampleState
isTRUE
orDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
is used,sampleLocationsInfo.sampleLocationsPerPixel
must equalrasterizationSamples
- If the pipeline requires fragment shader state, and the
sampleLocationsEnable
member of aVkPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
, 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_samples
extension, theVK_NV_framebuffer_mixed_samples
extension, or themultisampledRenderToSingleSampled
feature are enabled,rasterizationSamples
is not dynamic, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must 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_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must equal the maximum of the sample counts of those subpass attachments - If
renderPass
is notNULL_HANDLE
, theVK_EXT_multisampled_render_to_single_sampled
extension is enabled,rasterizationSamples
is not dynamic, andsubpass
has aVkMultisampledRenderToSingleSampledInfoEXT
structure included in theVkSubpassDescription2
::pNext
chain withmultisampledRenderToSingleSampledEnable
equal toTRUE
, then therasterizationSamples
member ofpMultisampleState
must be equal toVkMultisampledRenderToSingleSampledInfoEXT
::rasterizationSamples
- If the pipeline requires fragment output interface state, the
VK_NV_framebuffer_mixed_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamples
member ofpMultisampleState
must 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_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
has any color attachments, then therasterizationSamples
member ofpMultisampleState
must 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_mode
extension is enabled, andrasterizationSamples
is not dynamic, the coverage reduction mode specified byVkPipelineCoverageReductionStateCreateInfoNV
::coverageReductionMode
, therasterizationSamples
member ofpMultisampleState
and 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,
rasterizationSamples
is not dynamic, andsubpass
does not use any color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must follow the rules for a zero-attachment subpass - If
renderPass
is notNULL_HANDLE
,subpass
must be a valid subpass withinrenderPass
- If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not 0, andmultiviewTessellationShader
is not enabled, thenpStages
must not include tessellation shaders - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not 0, andmultiviewGeometryShader
is not enabled, thenpStages
must not include a geometry shader - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not 0, all of the shaders in the pipeline must not write to theLayer
built-in output - If
renderPass
is notNULL_HANDLE
and the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with theLayer
built-in decoration in their interfaces - If
renderPass
is notNULL_HANDLE
and the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with theViewMask
built-in decoration in their interfaces - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not 0, andmultiviewMeshShader
is not enabled, thenpStages
must not include a mesh shader flags
must not contain thePIPELINE_CREATE_DISPATCH_BASE
flag- If the pipeline requires fragment shader state and an input attachment was referenced by an
aspectMask
atrenderPass
creation time, the fragment shader must only read from the aspects that were specified for that input attachment - The number of resources in
layout
accessible 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
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_W_SCALING_NV
, and theviewportWScalingEnable
member of aVkPipelineViewportWScalingStateCreateInfoNV
structure, included in thepNext
chain ofpViewportState
, isTRUE
, thepViewportWScalings
member of theVkPipelineViewportWScalingStateCreateInfoNV
must be a pointer to an array ofVkPipelineViewportWScalingStateCreateInfoNV
::viewportCount
validVkViewportWScalingNV
structures - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
, and ifpViewportState→pNext
chain includes aVkPipelineViewportExclusiveScissorStateCreateInfoNV
structure, and if itsexclusiveScissorCount
member is not 0, then itspExclusiveScissors
member must be a valid pointer to an array ofexclusiveScissorCount
VkRect2D
structures - If
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2 of theVK_NV_scissor_exclusive
extension - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV
, and ifpViewportState→pNext
chain includes aVkPipelineViewportShadingRateImageStateCreateInfoNV
structure, then itspShadingRatePalettes
member must be a valid pointer to an array ofviewportCount
validVkShadingRatePaletteNV
structures - If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DISCARD_RECTANGLE_EXT
, and ifpNext
chain includes aVkPipelineDiscardRectangleStateCreateInfoEXT
structure, and if itsdiscardRectangleCount
member is not 0, then itspDiscardRectangles
member must be a valid pointer to an array ofdiscardRectangleCount
VkRect2D
structures - If
DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2 of theVK_EXT_discard_rectangles
extension - If
DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2 of theVK_EXT_discard_rectangles
extension - If the pipeline requires vertex input state, and
pVertexInputState
is not dynamic, thenpVertexInputState
must be a valid pointer to a validVkPipelineVertexInputStateCreateInfo
structure - If the pipeline is being created with vertex input state and
pVertexInputState
is not dynamic, then all variables with theInput
storage class decorated withLocation
in theVertex
Execution
Model
OpEntryPoint
must contain a location inVkVertexInputAttributeDescription
::location
- If the pipeline requires vertex input state and
pVertexInputState
is not dynamic, then the numeric type associated with allInput
variables of the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must be the same asVkVertexInputAttributeDescription
::format
- If the pipeline is being created with vertex input state and
pVertexInputState
is not dynamic, andVkVertexInputAttributeDescription
::format
has a 64-bit component, then the scalar width associated with allInput
variables of the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must be 64-bit - If the pipeline is being created with vertex input state and
pVertexInputState
is not dynamic, and the scalar width associated with aLocation
decoratedInput
variable in theVertex
Execution
Model
OpEntryPoint
is 64-bit, then the correspondingVkVertexInputAttributeDescription
::format
must have a 64-bit component - If the pipeline is being created with vertex input state and
pVertexInputState
is not dynamic, andVkVertexInputAttributeDescription
::format
has a 64-bit component, then allInput
variables at the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must not use components that are not present in the format - If the pipeline requires vertex input state, and the
VK_EXT_extended_dynamic_state3
extension is not enabled, or eitherDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic states are not set, ordynamicPrimitiveTopologyUnrestricted
isFALSE
,pInputAssemblyState
must be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfo
structure - If
pInputAssemblyState
is notNULL
it must be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfo
structure - If the pipeline requires pre-rasterization shader state, the
Xfb
execution 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
pStages
specifiesXfb
execution mode it must be the last pre-rasterization shader stage - If the pipeline requires pre-rasterization shader state, and a
VkPipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
value other than zero is specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must be decorated with identicalStream
values that match therasterizationStream
- If the pipeline requires pre-rasterization shader state, and
VkPipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
is zero, or not specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must be decorated with aStream
value of zero, or must not specify theStream
decoration - 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
GeometryStreams
capability, thenVkPhysicalDeviceTransformFeedbackFeaturesEXT
::geometryStreams
feature 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
Xfb
execution mode - If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and
pMultisampleState
is notNULL
, thelineRasterizationMode
member of aVkPipelineRasterizationLineStateCreateInfoEXT
structure included in thepNext
chain ofpRasterizationState
isLINE_RASTERIZATION_MODE_BRESENHAM_EXT
orLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
, then thealphaToCoverageEnable
,alphaToOneEnable
, andsampleShadingEnable
members ofpMultisampleState
must all beFALSE
- If the pipeline requires pre-rasterization shader state, the
stippledLineEnable
member ofVkPipelineRasterizationLineStateCreateInfoEXT
isTRUE
, and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_STIPPLE_EXT
, then thelineStippleFactor
member ofVkPipelineRasterizationLineStateCreateInfoEXT
must be in the range[1,256]
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
- If the
extendedDynamicState
feature is not enabled, and the value ofVkApplicationInfo
::apiVersion
used to create theVkInstance
is less than Version 1.3 there must be no element of thepDynamicStates
member ofpDynamicState
set 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_COUNT
is included in thepDynamicStates
array thenviewportCount
must be zero - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_SCISSOR_WITH_COUNT
is included in thepDynamicStates
array thenscissorCount
must be zero - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_VIEWPORT_WITH_COUNT
is included in thepDynamicStates
array thenDYNAMIC_STATE_VIEWPORT
must not be present - If the pipeline requires pre-rasterization shader state, and
DYNAMIC_STATE_SCISSOR_WITH_COUNT
is included in thepDynamicStates
array thenDYNAMIC_STATE_SCISSOR
must not be present - If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
, orDYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
- If the
extendedDynamicState2
feature is not enabled, and the value ofVkApplicationInfo
::apiVersion
used to create theVkInstance
is less than Version 1.3 there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_BIAS_ENABLE
,DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
- If the
extendedDynamicState2LogicOp
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LOGIC_OP_EXT
- If the
extendedDynamicState2PatchControlPoints
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set 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
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
- If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then thedeviceGeneratedCommands
feature must be enabled - If the pipeline requires pre-rasterization shader state and
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then all stages must not specifyXfb
execution mode - If the pipeline is not created with a complete set of state, or
VkPipelineLibraryCreateInfoKHR
::libraryCount
is not 0,VkGraphicsPipelineShaderGroupsCreateInfoNV
::groupCount
andVkGraphicsPipelineShaderGroupsCreateInfoNV
::pipelineCount
must be 0 - If the pipeline is created with a complete set of state, and
VkPipelineLibraryCreateInfoKHR
::libraryCount
is 0, and thepNext
chain includes an instance ofVkGraphicsPipelineShaderGroupsCreateInfoNV
,VkGraphicsPipelineShaderGroupsCreateInfoNV
::groupCount
must be greater than 0 - If the
pipelineCreationCacheControl
feature is not enabled,flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
- If the
pipelineProtectedAccess
feature is not enabled,flags
must not includePIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
orPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
flags
must not include bothPIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
andPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
- If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must 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_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must 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_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must be a power-of-two value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must be a power-of-two value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must 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_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must 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_KHR
is not included inpDynamicState→pDynamicStates
, and thepipelineFragmentShadingRate
feature is not enabled,VkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
andVkPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must both be equal to 1 - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[0] must be a validVkFragmentShadingRateCombinerOpKHR
value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[1] must be a validVkFragmentShadingRateCombinerOpKHR
value - If the pipeline requires pre-rasterization shader state or fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, and theprimitiveFragmentShadingRate
feature 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_KHR
is not included inpDynamicState→pDynamicStates
, and theattachmentFragmentShadingRate
feature is not enabled,VkPipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
- If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported,DYNAMIC_STATE_VIEWPORT_WITH_COUNT
is not included inpDynamicState→pDynamicStates
, andVkPipelineViewportStateCreateInfo
::viewportCount
is greater than 1, entry points specified inpStages
must not write to thePrimitiveShadingRateKHR
built-in - If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified inpStages
write to theViewportIndex
built-in, they must not also write to thePrimitiveShadingRateKHR
built-in - If the pipeline requires pre-rasterization shader state and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified inpStages
write to theViewportMaskNV
built-in, they must not also write to thePrimitiveShadingRateKHR
built-in - If the pipeline requires pre-rasterization shader state or fragment shader state, the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported, andDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, elements ofVkPipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
orFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
- If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRateType
must be a validVkFragmentShadingRateTypeNV
value - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must be a validVkFragmentShadingRateNV
value - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[0] must be a validVkFragmentShadingRateCombinerOpKHR
value - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[1] must be a validVkFragmentShadingRateCombinerOpKHR
value - If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, and thefragmentShadingRateEnums
feature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRateType
must be equal toFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV
- If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, and thepipelineFragmentShadingRate
feature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must be equal toFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
- If the pipeline requires fragment shader state and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, and theprimitiveFragmentShadingRate
feature 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_KHR
is not included inpDynamicState→pDynamicStates
, and theattachmentFragmentShadingRate
feature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
- If the pipeline requires fragment shader state, and the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported andDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState→pDynamicStates
, elements ofVkPipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
orFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
- If the pipeline requires fragment shader state, and the
supersampleFragmentShadingRates
feature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must 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
noInvocationFragmentShadingRates
feature is not enabled,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must not be equal toFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
- All elements of the
pDynamicStates
member ofpDynamicState
must not beDYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
- If the pipeline requires pre-rasterization shader state and the
vertexInputDynamicState
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set 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
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VERTEX_INPUT_EXT
- If the
colorWriteEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
- If the pipeline requires fragment shader state, and the
VK_QCOM_render_pass_shader_resolve
extension is enabled,rasterizationSamples
is 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_resolve
extension is enabled, and if the subpass description containsSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
, thensampleShadingEnable
must be false - If
flags
includesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
, then the subpass must be the last subpass in a subpass dependency chain - If
flags
includesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
, and ifpResolveAttachments
is notNULL
, then each resolve attachment must beATTACHMENT_UNUSED
- If the
dynamicRendering
feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state,renderPass
must not beNULL_HANDLE
- If the
multiview
feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, andrenderPass
isNULL_HANDLE
,VkPipelineRenderingCreateInfo
::viewMask
must be 0 - If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and
renderPass
isNULL_HANDLE
, the index of the most significant bit inVkPipelineRenderingCreateInfo
::viewMask
must be less thanmaxMultiviewViewCount
- If the pipeline requires fragment output interface state, and
renderPass
isNULL_HANDLE
, andVkPipelineRenderingCreateInfo
::colorAttachmentCount
is not 0,VkPipelineRenderingCreateInfo
::pColorAttachmentFormats
must be a valid pointer to an array ofcolorAttachmentCount
validVkFormat
values - If the pipeline requires fragment output interface state, and
renderPass
isNULL_HANDLE
, each element ofVkPipelineRenderingCreateInfo
::pColorAttachmentFormats
must be a validVkFormat
value - If the pipeline requires fragment output interface state,
renderPass
isNULL_HANDLE
, and any element ofVkPipelineRenderingCreateInfo
::pColorAttachmentFormats
is notFORMAT_UNDEFINED
, that format must be a format with potential format features that includeFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
orFORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
- If the pipeline requires fragment output interface state, and
renderPass
isNULL_HANDLE
,VkPipelineRenderingCreateInfo
::depthAttachmentFormat
must be a validVkFormat
value - If the pipeline requires fragment output interface state, and
renderPass
isNULL_HANDLE
,VkPipelineRenderingCreateInfo
::stencilAttachmentFormat
must be a validVkFormat
value - If the pipeline requires fragment output interface state,
renderPass
isNULL_HANDLE
, andVkPipelineRenderingCreateInfo
::depthAttachmentFormat
is 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,
renderPass
isNULL_HANDLE
, andVkPipelineRenderingCreateInfo
::stencilAttachmentFormat
is 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,
renderPass
isNULL_HANDLE
, andVkPipelineRenderingCreateInfo
::depthAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format that includes a depth component - If the pipeline requires fragment output interface state,
renderPass
isNULL_HANDLE
, andVkPipelineRenderingCreateInfo
::stencilAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format that includes a stencil component - If the pipeline requires fragment output interface state,
renderPass
isNULL_HANDLE
,VkPipelineRenderingCreateInfo
::depthAttachmentFormat
is notFORMAT_UNDEFINED
, andVkPipelineRenderingCreateInfo
::stencilAttachmentFormat
is notFORMAT_UNDEFINED
,depthAttachmentFormat
must equalstencilAttachmentFormat
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with fragment shader state and fragment output interface state, and either ofVkPipelineRenderingCreateInfo
::depthAttachmentFormat
orVkPipelineRenderingCreateInfo
::stencilAttachmentFormat
are notFORMAT_UNDEFINED
, and theVK_EXT_extended_dynamic_state3
extension 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_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
and the pipeline is being created with fragment shader state but not fragment output interface state, and theVK_EXT_extended_dynamic_state3
extension 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_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
, the pipeline is being created with fragment output interface state, andVkPipelineRenderingCreateInfo
::colorAttachmentCount
is not equal to 0, and theVK_EXT_extended_dynamic_state3
extension 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_CONSTANTS
dynamic states are not set,pColorBlendState
must be a valid pointer to a validVkPipelineColorBlendStateCreateInfo
structure - If
pColorBlendState
is notNULL
it must be a valid pointer to a validVkPipelineColorBlendStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
,pColorBlendState
is not dynamic, and the pipeline is being created with fragment output interface state,pColorBlendState→attachmentCount
must be equal toVkPipelineRenderingCreateInfo
::colorAttachmentCount
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,VkPipelineRenderingCreateInfo
::viewMask
is not 0, and themultiviewTessellationShader
feature is not enabled, thenpStages
must not include tessellation shaders - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,VkPipelineRenderingCreateInfo
::viewMask
is not 0, and themultiviewGeometryShader
feature is not enabled, thenpStages
must not include a geometry shader - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo
::viewMask
is not 0, all of the shaders in the pipeline must not write to theLayer
built-in output - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo
::viewMask
is not 0, all of the shaders in the pipeline must not include variables decorated with theLayer
built-in decoration in their interfaces - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo
::viewMask
is not 0, all of the shaders in the pipeline must not include variables decorated with theViewIndex
built-in decoration in their interfaces - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andVkPipelineRenderingCreateInfo
::viewMask
is not 0, andmultiviewMeshShader
is not enabled, thenpStages
must not include a mesh shader - If the pipeline requires fragment shader state and
renderPass
isNULL_HANDLE
, fragment shaders inpStages
must not include theInputAttachment
capability - If the pipeline requires fragment shader state and
renderPass
is notNULL_HANDLE
, fragment shaders inpStages
must not include any of theTileImageColorReadAccessEXT
,TileImageDepthReadAccessEXT
, orTileImageStencilReadAccessEXT
capabilities - If the pipeline requires fragment output interface state and
renderPass
isNULL_HANDLE
, for each color attachment format defined by thepColorAttachmentFormats
member ofVkPipelineRenderingCreateInfo
, if its potential format features do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
, then theblendEnable
member of the corresponding element of thepAttachments
member ofpColorBlendState
must beFALSE
- If the pipeline requires fragment output interface state and
renderPass
isNULL_HANDLE
, if thepNext
chain includesVkAttachmentSampleCountInfoAMD
orVkAttachmentSampleCountInfoNV
, thecolorAttachmentCount
member of that structure must be equal to the value ofVkPipelineRenderingCreateInfo
::colorAttachmentCount
- If
pStages
includes a fragment shader stage, and the fragment shader declares theEarlyFragmentTests
execution mode, theflags
member ofVkPipelineDepthStencilStateCreateInfo
must not includePIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
orPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
- If the pipeline requires fragment output interface state and the
flags
member ofVkPipelineColorBlendStateCreateInfo
includesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
,renderpass
must not beNULL_HANDLE
- If the pipeline requires fragment output interface state and the
flags
member ofVkPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
orPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
,renderpass
must not beNULL_HANDLE
- If the fragment output interface state, elements of the
pColorAttachmentSamples
member ofVkAttachmentSampleCountInfoAMD
orVkAttachmentSampleCountInfoNV
must be validVkSampleCountFlagBits
values - If the fragment output interface state and the
depthStencilAttachmentSamples
member ofVkAttachmentSampleCountInfoAMD
orVkAttachmentSampleCountInfoNV
is not 0, it must be a validVkSampleCountFlagBits
value - If the pipeline requires fragment output interface state and the
flags
member ofVkPipelineColorBlendStateCreateInfo
includesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
- If the pipeline requires fragment shader state and the
flags
member ofVkPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
,subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
- If the pipeline requires fragment shader state and the
flags
member ofVkPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
,subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
- If
VkPipelineCreationFeedbackCreateInfo
::pipelineStageCreationFeedbackCount
is not 0, it must be equal tostageCount
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state or fragment shader state, andVkMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
isTRUE
thenVkMultiviewPerViewAttributesInfoNVX
::perViewAttributes
must also beTRUE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, the value ofVkMultiviewPerViewAttributesInfoNVX
::perViewAttributes
specified in both this pipeline and the library must be equal - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, the value ofVkMultiviewPerViewAttributesInfoNVX
::perViewAttributes
specified in both libraries must be equal - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, the value ofVkMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
specified in both this pipeline and the library must be equal - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, the value ofVkMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
specified in both libraries must be equal - If the pipeline requires pre-rasterization shader state or fragment shader state,
pStages
must be a valid pointer to an array ofstageCount
validVkPipelineShaderStageCreateInfo
structures - If the
VK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states are not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set, thenpMultisampleState
must be a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If
pRasterizationState
is notNULL
it must be a valid pointer to a validVkPipelineRasterizationStateCreateInfo
structure - If the pipeline requires fragment shader state or pre-rasterization shader state,
layout
must be a validVkPipelineLayout
handle - If pre-rasterization shader state, fragment shader state, or fragment output state, and
renderPass
is notNULL_HANDLE
,renderPass
must be a validVkRenderPass
handle - If the pipeline requires pre-rasterization shader state or fragment shader state,
stageCount
must be greater than 0 - If the
graphicsPipelineLibrary
feature is not enabled,flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline,
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If
flags
includesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
, pipeline libraries included viaVkPipelineLibraryCreateInfoKHR
must have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
- If
flags
includesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
,flags
must also includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If
flags
includesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
, pipeline libraries included viaVkPipelineLibraryCreateInfoKHR
must have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
- Any pipeline libraries included via
VkPipelineLibraryCreateInfoKHR
::pLibraries
must not include any state subset already defined by this structure or defined by any other pipeline library inVkPipelineLibraryCreateInfoKHR
::pLibraries
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, andlayout
was not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by this pipeline and the library must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by each library must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, andlayout
was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by the library must also have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by both libraries must have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, andlayout
was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, elements of thepSetLayouts
array whichlayout
was created with that are notNULL_HANDLE
must be identically defined to the element at the same index ofpSetLayouts
used to create the library’slayout
- If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, elements of thepSetLayouts
array which eitherlayout
was created with that are notNULL_HANDLE
must be identically defined to the element at the same index ofpSetLayouts
used to create the other library’slayout
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, any descriptor set layout N specified bylayout
in both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, any descriptor set layout N specified bylayout
in both libraries which include bindings accessed by shader stages in each must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, push constants specified inlayout
in both this pipeline and the library which are available to shader stages in each must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, push constants specified inlayout
in both this pipeline and the library which are available to shader stages in each must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array whichlayout
was created with wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the library’slayout
must not beNULL_HANDLE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array used to create the library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create this pipeline’slayout
must not beNULL_HANDLE
- If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and any element of thepSetLayouts
array used to create each library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the other library’slayout
must not beNULL_HANDLE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array whichlayout
was created with wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the library’slayout
must not have shader bindings for shaders in the other subset - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array used to create the library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create this pipeline’slayout
must not have shader bindings for shaders in the other subset - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and any element of thepSetLayouts
array used to create each library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the other library’slayout
must not have shader bindings for shaders in the other subset - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes bothGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
andGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,layout
must have been created with no elements of thepSetLayouts
array set toNULL_HANDLE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
andpRasterizationState→rasterizerDiscardEnable
isTRUE
,layout
must have been created with no elements of thepSetLayouts
array set toNULL_HANDLE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes 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
::pLibraries
includes one of the other flags, the value ofsubpass
must be equal to that used to create the library - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includes 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
::pLibraries
includes one of the other flags, the value ofsubpass
used to create each library must be identical - If
renderpass
is notNULL_HANDLE
,VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes 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
::pLibraries
includes one of the other flags,renderPass
must be compatible with that used to create the library - If
renderpass
isNULL_HANDLE
,VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes 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
::pLibraries
includes one of the other flags, the value ofrenderPass
used to create that library must also beNULL_HANDLE
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes 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
::pLibraries
includes one of the other flags, andrenderPass
isNULL_HANDLE
, the value ofVkPipelineRenderingCreateInfo
::viewMask
used by this pipeline and that specified by the library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includes 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
::pLibraries
includes one of the other flags, andrenderPass
wasNULL_HANDLE
for both libraries, the value ofVkPipelineRenderingCreateInfo
::viewMask
set by each library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includes 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
::pLibraries
includes one of the other flags, therenderPass
objects used to create each library must be compatible or all equal toNULL_HANDLE
- If the pipeline requires fragment shader state
pMultisampleState
must beNULL
or a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If the pipeline requires fragment shader state and
renderpass
is notNULL_HANDLE
, thenpMultisampleState
must not beNULL
- If the pipeline requires fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the
Input
storage class withSample
, thenpMultisampleState
must not beNULL
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState
must be identically defined to that used to create the library - If an element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and ifVkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState
must be identically defined to that used to create the library - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and if a different element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, thepMultisampleState
used to create each library must be identically defined - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
and a value ofpMultisampleState→sampleShading
equalTRUE
, and if a different element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, thepMultisampleState
used to create each library must be identically defined - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState→sampleShading
isTRUE
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, thepMultisampleState
used to create that library must be identically definedpMultisampleState
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofVkPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, values specified inVkPipelineFragmentShadingRateStateCreateInfoKHR
for both this pipeline and that library must be identical - If one element of
VkPipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, values specified inVkPipelineFragmentShadingRateStateCreateInfoKHR
for both this pipeline and that library must be identical - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,pStages
must be a valid pointer to an array ofstageCount
validVkPipelineShaderStageCreateInfo
structures - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, and theVK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states are not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set,pMultisampleState
must be a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If
pRasterizationState
is notNULL
it must be a valid pointer to a validVkPipelineRasterizationStateCreateInfo
structure - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,layout
must be a validVkPipelineLayout
handle - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, andrenderPass
is notNULL_HANDLE
,renderPass
must be a validVkRenderPass
handle - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,stageCount
must be greater than 0 - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
is non-zero, ifflags
includesPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
, any libraries must have also been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
- If
VkPipelineLibraryCreateInfoKHR
::pLibraries
includes 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
::pLibraries
includes at least one library,VkGraphicsPipelineLibraryCreateInfoEXT
::flags
is non-zero, and any library was created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
,flags
must 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
, thenVkPipelineLayout
must 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
VkPipelineLayout
created withoutPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the layouts in those libraries - If
flags
includesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with aVkPipelineLayout
created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion ofPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If
flags
does 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 aVkPipelineLayout
created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the union of the libraries' pipeline layouts - If
conservativePointAndLineRasterization
is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value ofVkPipelineInputAssemblyStateCreateInfo
::topology
isPRIMITIVE_TOPOLOGY_POINT_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST
, orPRIMITIVE_TOPOLOGY_LINE_STRIP
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled ordynamicPrimitiveTopologyUnrestricted
isFALSE
, thenVkPipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
- If
conservativePointAndLineRasterization
is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either theOutputPoints
orOutputLineStrip
execution modes,VkPipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
- If
conservativePointAndLineRasterization
is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either theOutputPoints
orOutputLinesNV
execution modes,VkPipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
- If the pipeline requires pre-rasterization shader state but not fragment shader state, elements of
pStages
must not havestage
set toSHADER_STAGE_FRAGMENT_BIT
- If the pipeline requires fragment shader state but not pre-rasterization shader state, elements of
pStages
must not havestage
set to a shader stage which participates in pre-rasterization - If the pipeline requires pre-rasterization shader state, all elements of
pStages
must have astage
set 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
stage
must not be set in more than one element ofpStages
- If the
extendedDynamicState3TessellationDomainOrigin
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT
- If the
extendedDynamicState3DepthClampEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
- If the
extendedDynamicState3PolygonMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_POLYGON_MODE_EXT
- If the
extendedDynamicState3RasterizationSamples
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
- If the
extendedDynamicState3SampleMask
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SAMPLE_MASK_EXT
- If the
extendedDynamicState3AlphaToCoverageEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
- If the
extendedDynamicState3AlphaToOneEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
- If the
extendedDynamicState3LogicOpEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
- If the
extendedDynamicState3ColorBlendEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
- If the
extendedDynamicState3ColorBlendEquation
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
- If the
extendedDynamicState3ColorWriteMask
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_WRITE_MASK_EXT
- If the
extendedDynamicState3RasterizationStream
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_RASTERIZATION_STREAM_EXT
- If the
extendedDynamicState3ConservativeRasterizationMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
- If the
extendedDynamicState3ExtraPrimitiveOverestimationSize
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT
- If the
extendedDynamicState3DepthClipEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT
- If the
extendedDynamicState3SampleLocationsEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
- If the
extendedDynamicState3ColorBlendAdvanced
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
- If the
extendedDynamicState3ProvokingVertexMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT
- If the
extendedDynamicState3LineRasterizationMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
- If the
extendedDynamicState3LineStippleEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
- If the
extendedDynamicState3DepthClipNegativeOneToOne
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT
- If the
extendedDynamicState3ViewportWScalingEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV
- If the
extendedDynamicState3ViewportSwizzle
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VIEWPORT_SWIZZLE_NV
- If the
extendedDynamicState3CoverageToColorEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
- If the
extendedDynamicState3CoverageToColorLocation
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV
- If the
extendedDynamicState3CoverageModulationMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV
- If the
extendedDynamicState3CoverageModulationTableEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV
- If the
extendedDynamicState3CoverageModulationTable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV
- If the
extendedDynamicState3CoverageReductionMode
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
- If the
extendedDynamicState3RepresentativeFragmentTestEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
- If the
extendedDynamicState3ShadingRateImageEnable
feature is not enabled, there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
flags
must not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
flags
must not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
- If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT
orDYNAMIC_STATE_VIEWPORT_WITH_COUNT
, and ifmultiviewPerViewViewports
is enabled, then the index of the most significant bit in each element ofVkRenderPassMultiviewCreateInfo
::pViewMasks
must be less thanpViewportState
::viewportCount
- If the pipeline requires pre-rasterization shader state, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SCISSOR
orDYNAMIC_STATE_SCISSOR_WITH_COUNT
, and ifmultiviewPerViewViewports
is enabled, then the index of the most significant bit in each element ofVkRenderPassMultiviewCreateInfo
::pViewMasks
must be less thanpViewportState
::scissorCount
- If
pStages
includes a fragment shader stage,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
is not set inVkPipelineDynamicStateCreateInfo
::pDynamicStates
, and the fragment shader declares theEarlyFragmentTests
execution mode and usesOpDepthAttachmentReadEXT
, thedepthWriteEnable
member ofVkPipelineDepthStencilStateCreateInfo
must beFALSE
- If
pStages
includes a fragment shader stage,DYNAMIC_STATE_STENCIL_WRITE_MASK
is not set inVkPipelineDynamicStateCreateInfo
::pDynamicStates
, and the fragment shader declares theEarlyFragmentTests
execution mode and usesOpStencilAttachmentReadEXT
, the value ofVkStencilOpState
::writeMask
for bothfront
andback
inVkPipelineDepthStencilStateCreateInfo
must be 0 - If
renderPass
isNULL_HANDLE
, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading,rasterizationSamples
is not dynamic, and thepNext
chain includes aVkPipelineRenderingCreateInfo
structure,rasterizationSamples
must be a bit value that is set inimageCreateSampleCounts
(as defined in Image Creation Limits) for every element ofdepthAttachmentFormat
,stencilAttachmentFormat
and thepColorAttachmentFormats
array which is notFORMAT_UNDEFINED
- If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_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
::flags
includesGRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define vertex input state - If
flags
does 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 pre-rasterization shader state or include that state in a linked pipeline library - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
the pipeline must define pre-rasterization shader state - If
flags
does 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
::flags
includesGRAPHICS_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_ENABLE
or haspRasterizationState→rasterizerDiscardEnable
set toFALSE
, the pipeline must define fragment shader state - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_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_ENABLE
or haspRasterizationState→rasterizerDiscardEnable
set toFALSE
, the pipeline must define fragment output interface state - If
VkGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state - If
pDynamicState→pDynamicStates
does not includeDYNAMIC_STATE_COLOR_WRITE_MASK_EXT
, and the format of any color attachment isFORMAT_E5B9G9R9_UFLOAT_PACK32
, thecolorWriteMask
member of the corresponding element ofpColorBlendState→pAttachments
must either include all ofCOLOR_COMPONENT_R_BIT
,COLOR_COMPONENT_G_BIT
, andCOLOR_COMPONENT_B_BIT
, or none of them - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0,VkPipelineRenderingCreateInfo
::viewMask
must be 0 - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
,VkExternalFormatANDROID
::externalFormat
is not 0, andrasterizationSamples
is not dynamic,VkPipelineMultisampleStateCreateInfo
::rasterizationSamples
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0, andblendEnable
is not dynamic, theblendEnable
member of each element ofpColorBlendState→pAttachments
must beFALSE
- If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0, andpDynamicState→pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::width
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0, andpDynamicState→pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::height
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHR
built-in - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0,VkPipelineRenderingCreateInfo
::colorAttachmentCount
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment shader state and fragment output interface state,renderPass
isNULL_HANDLE
, andVkExternalFormatANDROID
::externalFormat
is not 0, the fragment shader must not declare theDepthReplacing
orStencilRefReplacingEXT
execution modes - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andrasterizationSamples
is not dynamic,VkPipelineMultisampleStateCreateInfo
::rasterizationSamples
must beSAMPLE_COUNT_1_BIT
- If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andblendEnable
is not dynamic, theblendEnable
member of each element ofpColorBlendState→pAttachments
must beFALSE
- If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andpDynamicState→pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::width
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires fragment output interface state,renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andpDynamicState→pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,VkPipelineFragmentShadingRateStateCreateInfoKHR
::height
must be 1 - If the
externalFormatResolve
feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state,renderPass
is notNULL_HANDLE
, andsubpass
includes an external format resolve attachment, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHR
built-in
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkAttachmentSampleCountInfoAMD
,VkExternalFormatANDROID
,VkGraphicsPipelineLibraryCreateInfoEXT
,VkGraphicsPipelineShaderGroupsCreateInfoNV
,VkMultiviewPerViewAttributesInfoNVX
,VkPipelineCompilerControlCreateInfoAMD
,VkPipelineCreateFlags2CreateInfoKHR
,VkPipelineCreationFeedbackCreateInfo
,VkPipelineDiscardRectangleStateCreateInfoEXT
,VkPipelineFragmentShadingRateEnumStateCreateInfoNV
,VkPipelineFragmentShadingRateStateCreateInfoKHR
,VkPipelineLibraryCreateInfoKHR
,VkPipelineRenderingCreateInfo
,VkPipelineRepresentativeFragmentTestStateCreateInfoNV
, orVkPipelineRobustnessCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be a valid combination ofVkPipelineCreateFlagBits
values- If
pDynamicState
is notNULL
,pDynamicState
must be a valid pointer to a validVkPipelineDynamicStateCreateInfo
structure - Each of
basePipelineHandle
,layout
, andrenderPass
that 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 classes/interfaces inherited from class org.lwjgl.system.Struct
Struct.StructValidation
Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer
Pointer.Default
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The struct alignment in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct size in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
-
Constructor Summary
ConstructorDescriptionVkGraphicsPipelineCreateInfo
(ByteBuffer container) Creates aVkGraphicsPipelineCreateInfo
instance at the current position of the specifiedByteBuffer
container. -
Method Summary
Modifier and TypeMethodDescriptionlong
a pipeline to derive from.basePipelineHandle
(long value) Sets the specified value to thebasePipelineHandle()
field.int
an index into thepCreateInfos
parameter to use as a pipeline to derive from.basePipelineIndex
(int value) Sets the specified value to thebasePipelineIndex()
field.static VkGraphicsPipelineCreateInfo
calloc()
Returns a newVkGraphicsPipelineCreateInfo
instance allocated withmemCalloc
.calloc
(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withmemCalloc
.calloc
(int capacity, MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkGraphicsPipelineCreateInfo
calloc
(MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkGraphicsPipelineCreateInfo
Deprecated.callocStack
(int capacity) Deprecated.callocStack
(int capacity, MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfo
callocStack
(MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfo
create()
Returns a newVkGraphicsPipelineCreateInfo
instance allocated withBufferUtils
.create
(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withBufferUtils
.static VkGraphicsPipelineCreateInfo
create
(long address) Returns a newVkGraphicsPipelineCreateInfo
instance for the specified memory address.create
(long address, int capacity) Create aVkGraphicsPipelineCreateInfo.Buffer
instance at the specified memory.static VkGraphicsPipelineCreateInfo
createSafe
(long address) createSafe
(long address, int capacity) int
flags()
a bitmask ofVkPipelineCreateFlagBits
specifying how the pipeline will be generated.flags
(int value) Sets the specified value to theflags()
field.long
layout()
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 VkGraphicsPipelineCreateInfo
malloc()
Returns a newVkGraphicsPipelineCreateInfo
instance allocated withmemAlloc
.malloc
(int capacity) Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withmemAlloc
.malloc
(int capacity, MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
.static VkGraphicsPipelineCreateInfo
malloc
(MemoryStack stack) Returns a newVkGraphicsPipelineCreateInfo
instance allocated on the specifiedMemoryStack
.static VkGraphicsPipelineCreateInfo
Deprecated.mallocStack
(int capacity) Deprecated.mallocStack
(int capacity, MemoryStack stack) Deprecated.static VkGraphicsPipelineCreateInfo
mallocStack
(MemoryStack stack) Deprecated.static long
nbasePipelineHandle
(long struct) Unsafe version ofbasePipelineHandle()
.static void
nbasePipelineHandle
(long struct, long value) Unsafe version ofbasePipelineHandle
.static int
nbasePipelineIndex
(long struct) Unsafe version ofbasePipelineIndex()
.static void
nbasePipelineIndex
(long struct, int value) Unsafe version ofbasePipelineIndex
.static int
nflags
(long struct) Unsafe version offlags()
.static void
nflags
(long struct, int value) Unsafe version offlags
.static long
nlayout
(long struct) Unsafe version oflayout()
.static void
nlayout
(long struct, long value) Unsafe version oflayout
.npColorBlendState
(long struct) Unsafe version ofpColorBlendState()
.static void
npColorBlendState
(long struct, VkPipelineColorBlendStateCreateInfo value) Unsafe version ofpColorBlendState
.npDepthStencilState
(long struct) Unsafe version ofpDepthStencilState()
.static void
npDepthStencilState
(long struct, VkPipelineDepthStencilStateCreateInfo value) Unsafe version ofpDepthStencilState
.npDynamicState
(long struct) Unsafe version ofpDynamicState()
.static void
npDynamicState
(long struct, VkPipelineDynamicStateCreateInfo value) Unsafe version ofpDynamicState
.npInputAssemblyState
(long struct) Unsafe version ofpInputAssemblyState()
.static void
npInputAssemblyState
(long struct, VkPipelineInputAssemblyStateCreateInfo value) Unsafe version ofpInputAssemblyState
.npMultisampleState
(long struct) Unsafe version ofpMultisampleState()
.static void
npMultisampleState
(long struct, VkPipelineMultisampleStateCreateInfo value) Unsafe version ofpMultisampleState
.static long
npNext
(long struct) Unsafe version ofpNext()
.static void
npNext
(long struct, long value) Unsafe version ofpNext
.npRasterizationState
(long struct) Unsafe version ofpRasterizationState()
.static void
npRasterizationState
(long struct, VkPipelineRasterizationStateCreateInfo value) Unsafe version ofpRasterizationState
.npStages
(long struct) Unsafe version ofpStages()
.static void
npStages
(long struct, VkPipelineShaderStageCreateInfo.Buffer value) Unsafe version ofpStages
.npTessellationState
(long struct) Unsafe version ofpTessellationState()
.static void
npTessellationState
(long struct, VkPipelineTessellationStateCreateInfo value) Unsafe version ofpTessellationState
.npVertexInputState
(long struct) Unsafe version ofpVertexInputState()
.static void
npVertexInputState
(long struct, VkPipelineVertexInputStateCreateInfo value) Unsafe version ofpVertexInputState
.npViewportState
(long struct) Unsafe version ofpViewportState()
.static void
npViewportState
(long struct, VkPipelineViewportStateCreateInfo value) Unsafe version ofpViewportState
.static long
nrenderPass
(long struct) Unsafe version ofrenderPass()
.static void
nrenderPass
(long struct, long value) Unsafe version ofrenderPass
.static int
nstageCount
(long struct) Unsafe version ofstageCount()
.static void
nstageCount
(long struct, int value) Sets the specified value to thestageCount
field of the specifiedstruct
.static int
nsType
(long struct) Unsafe version ofsType()
.static void
nsType
(long struct, int value) Unsafe version ofsType
.static int
nsubpass
(long struct) Unsafe version ofsubpass()
.static void
nsubpass
(long struct, int value) Unsafe version ofsubpass
.a pointer to aVkPipelineColorBlendStateCreateInfo
structure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering.Sets the address of the specifiedVkPipelineColorBlendStateCreateInfo
to thepColorBlendState()
field.a pointer to aVkPipelineDepthStencilStateCreateInfo
structure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering.Sets the address of the specifiedVkPipelineDepthStencilStateCreateInfo
to thepDepthStencilState()
field.a pointer to aVkPipelineDynamicStateCreateInfo
structure defining which properties of the pipeline state object are dynamic and can be changed independently of the pipeline state.Sets the address of the specifiedVkPipelineDynamicStateCreateInfo
to thepDynamicState()
field.a pointer to aVkPipelineInputAssemblyStateCreateInfo
structure which determines input assembly behavior for vertex shading, as described in Drawing Commands.Sets the address of the specifiedVkPipelineInputAssemblyStateCreateInfo
to thepInputAssemblyState()
field.a pointer to aVkPipelineMultisampleStateCreateInfo
structure defining multisample state used when rasterization is enabled.Sets the address of the specifiedVkPipelineMultisampleStateCreateInfo
to thepMultisampleState()
field.long
pNext()
NULL
or a pointer to a structure extending this structure.pNext
(long value) Sets the specified value to thepNext()
field.Prepends the specifiedVkAttachmentSampleCountInfoAMD
value to thepNext
chain.Prepends the specifiedVkAttachmentSampleCountInfoNV
value to thepNext
chain.pNext
(VkExternalFormatANDROID value) Prepends the specifiedVkExternalFormatANDROID
value to thepNext
chain.Prepends the specifiedVkGraphicsPipelineLibraryCreateInfoEXT
value to thepNext
chain.Prepends the specifiedVkGraphicsPipelineShaderGroupsCreateInfoNV
value to thepNext
chain.Prepends the specifiedVkMultiviewPerViewAttributesInfoNVX
value to thepNext
chain.Prepends the specifiedVkPipelineCompilerControlCreateInfoAMD
value to thepNext
chain.Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHR
value to thepNext
chain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfo
value to thepNext
chain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXT
value to thepNext
chain.Prepends the specifiedVkPipelineDiscardRectangleStateCreateInfoEXT
value to thepNext
chain.Prepends the specifiedVkPipelineFragmentShadingRateEnumStateCreateInfoNV
value to thepNext
chain.Prepends the specifiedVkPipelineFragmentShadingRateStateCreateInfoKHR
value to thepNext
chain.Prepends the specifiedVkPipelineLibraryCreateInfoKHR
value to thepNext
chain.Prepends the specifiedVkPipelineRenderingCreateInfo
value to thepNext
chain.Prepends the specifiedVkPipelineRenderingCreateInfoKHR
value to thepNext
chain.Prepends the specifiedVkPipelineRepresentativeFragmentTestStateCreateInfoNV
value to thepNext
chain.Prepends the specifiedVkPipelineRobustnessCreateInfoEXT
value to thepNext
chain.a pointer to aVkPipelineRasterizationStateCreateInfo
structure defining rasterization state.Sets the address of the specifiedVkPipelineRasterizationStateCreateInfo
to thepRasterizationState()
field.pStages()
a pointer to an array ofstageCount
VkPipelineShaderStageCreateInfo
structures describing the set of the shader stages to be included in the graphics pipeline.Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Buffer
to thepStages()
field.a pointer to aVkPipelineTessellationStateCreateInfo
structure defining tessellation state used by tessellation shaders.Sets the address of the specifiedVkPipelineTessellationStateCreateInfo
to thepTessellationState()
field.a pointer to aVkPipelineVertexInputStateCreateInfo
structure.Sets the address of the specifiedVkPipelineVertexInputStateCreateInfo
to thepVertexInputState()
field.a pointer to aVkPipelineViewportStateCreateInfo
structure defining viewport state used when rasterization is enabled.Sets the address of the specifiedVkPipelineViewportStateCreateInfo
to thepViewportState()
field.long
a 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, VkPipelineShaderStageCreateInfo.Buffer pStages, VkPipelineVertexInputStateCreateInfo pVertexInputState, VkPipelineInputAssemblyStateCreateInfo pInputAssemblyState, VkPipelineTessellationStateCreateInfo pTessellationState, VkPipelineViewportStateCreateInfo pViewportState, VkPipelineRasterizationStateCreateInfo pRasterizationState, VkPipelineMultisampleStateCreateInfo pMultisampleState, VkPipelineDepthStencilStateCreateInfo pDepthStencilState, VkPipelineColorBlendStateCreateInfo pColorBlendState, 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.int
sizeof()
Returnssizeof(struct)
.int
the number of entries in thepStages
array.stageCount
(int value) Sets the specified value to thestageCount()
field.int
sType()
aVkStructureType
value identifying this structure.sType
(int value) Sets the specified value to thesType()
field.Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
value to thesType()
field.int
subpass()
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 void
validate
(long struct) Validates pointer members that should not beNULL
.Methods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toString
Methods 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 aVkGraphicsPipelineCreateInfo
instance at the current position of the specifiedByteBuffer
container. 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()Description copied from class:Struct
Returnssizeof(struct)
.- Specified by:
sizeof
in classStruct<VkGraphicsPipelineCreateInfo>
-
sType
public int sType()aVkStructureType
value identifying this structure. -
pNext
public long pNext()NULL
or a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkPipelineCreateFlagBits
specifying how the pipeline will be generated. -
stageCount
public int stageCount()the number of entries in thepStages
array. -
pStages
a pointer to an array ofstageCount
VkPipelineShaderStageCreateInfo
structures describing the set of the shader stages to be included in the graphics pipeline. -
pVertexInputState
a pointer to aVkPipelineVertexInputStateCreateInfo
structure. It is ignored if the pipeline includes a mesh shader stage. It can beNULL
if the pipeline is created with theDYNAMIC_STATE_VERTEX_INPUT_EXT
dynamic state set. -
pInputAssemblyState
a pointer to aVkPipelineInputAssemblyStateCreateInfo
structure which determines input assembly behavior for vertex shading, as described in Drawing Commands. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if the pipeline is created with bothDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, andDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic states set anddynamicPrimitiveTopologyUnrestricted
isTRUE
. It is ignored if the pipeline includes a mesh shader stage. -
pTessellationState
a pointer to aVkPipelineTessellationStateCreateInfo
structure defining tessellation state used by tessellation shaders. It can beNULL
if the pipeline is created with theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
dynamic state set. -
pViewportState
a pointer to aVkPipelineViewportStateCreateInfo
structure defining viewport state used when rasterization is enabled. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if the pipeline is created with bothDYNAMIC_STATE_VIEWPORT_WITH_COUNT
, andDYNAMIC_STATE_SCISSOR_WITH_COUNT
dynamic states set. -
pRasterizationState
a pointer to aVkPipelineRasterizationStateCreateInfo
structure defining rasterization state. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if 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_WIDTH
dynamic states set. -
pMultisampleState
a pointer to aVkPipelineMultisampleStateCreateInfo
structure defining multisample state used when rasterization is enabled. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if the pipeline is created with all ofDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, andDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states set, and either alphaToOne is disabled on the device orDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is set, in which caseVkPipelineMultisampleStateCreateInfo
::sampleShadingEnable
is assumed to beFALSE
. -
pDepthStencilState
a pointer to aVkPipelineDepthStencilStateCreateInfo
structure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if 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_BOUNDS
dynamic states set. -
pColorBlendState
a pointer to aVkPipelineColorBlendStateCreateInfo
structure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering. If theVK_EXT_extended_dynamic_state3
extension is enabled, it can beNULL
if 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_CONSTANTS
dynamic states set. -
pDynamicState
a pointer to aVkPipelineDynamicStateCreateInfo
structure defining which properties of the pipeline state object are dynamic and can be changed independently of the pipeline state. This can beNULL
, which means no state in the pipeline is considered dynamic. -
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 thepCreateInfos
parameter to use as a pipeline to derive from. -
sType
Sets the specified value to thesType()
field. -
sType$Default
Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
value to thesType()
field. -
pNext
Sets the specified value to thepNext()
field. -
pNext
Prepends the specifiedVkAttachmentSampleCountInfoAMD
value to thepNext
chain. -
pNext
Prepends the specifiedVkAttachmentSampleCountInfoNV
value to thepNext
chain. -
pNext
Prepends the specifiedVkExternalFormatANDROID
value to thepNext
chain. -
pNext
Prepends the specifiedVkGraphicsPipelineLibraryCreateInfoEXT
value to thepNext
chain. -
pNext
Prepends the specifiedVkGraphicsPipelineShaderGroupsCreateInfoNV
value to thepNext
chain. -
pNext
Prepends the specifiedVkMultiviewPerViewAttributesInfoNVX
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineCompilerControlCreateInfoAMD
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHR
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfo
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXT
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineDiscardRectangleStateCreateInfoEXT
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineFragmentShadingRateEnumStateCreateInfoNV
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineFragmentShadingRateStateCreateInfoKHR
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineLibraryCreateInfoKHR
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineRenderingCreateInfo
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineRenderingCreateInfoKHR
value to thepNext
chain. -
pNext
public VkGraphicsPipelineCreateInfo pNext(VkPipelineRepresentativeFragmentTestStateCreateInfoNV value) Prepends the specifiedVkPipelineRepresentativeFragmentTestStateCreateInfoNV
value to thepNext
chain. -
pNext
Prepends the specifiedVkPipelineRobustnessCreateInfoEXT
value to thepNext
chain. -
flags
Sets the specified value to theflags()
field. -
stageCount
Sets the specified value to thestageCount()
field. -
pStages
Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Buffer
to thepStages()
field. -
pVertexInputState
public VkGraphicsPipelineCreateInfo pVertexInputState(@Nullable VkPipelineVertexInputStateCreateInfo value) Sets the address of the specifiedVkPipelineVertexInputStateCreateInfo
to thepVertexInputState()
field. -
pInputAssemblyState
public VkGraphicsPipelineCreateInfo pInputAssemblyState(@Nullable VkPipelineInputAssemblyStateCreateInfo value) Sets the address of the specifiedVkPipelineInputAssemblyStateCreateInfo
to thepInputAssemblyState()
field. -
pTessellationState
public VkGraphicsPipelineCreateInfo pTessellationState(@Nullable VkPipelineTessellationStateCreateInfo value) Sets the address of the specifiedVkPipelineTessellationStateCreateInfo
to thepTessellationState()
field. -
pViewportState
public VkGraphicsPipelineCreateInfo pViewportState(@Nullable VkPipelineViewportStateCreateInfo value) Sets the address of the specifiedVkPipelineViewportStateCreateInfo
to thepViewportState()
field. -
pRasterizationState
public VkGraphicsPipelineCreateInfo pRasterizationState(@Nullable VkPipelineRasterizationStateCreateInfo value) Sets the address of the specifiedVkPipelineRasterizationStateCreateInfo
to thepRasterizationState()
field. -
pMultisampleState
public VkGraphicsPipelineCreateInfo pMultisampleState(@Nullable VkPipelineMultisampleStateCreateInfo value) Sets the address of the specifiedVkPipelineMultisampleStateCreateInfo
to thepMultisampleState()
field. -
pDepthStencilState
public VkGraphicsPipelineCreateInfo pDepthStencilState(@Nullable VkPipelineDepthStencilStateCreateInfo value) Sets the address of the specifiedVkPipelineDepthStencilStateCreateInfo
to thepDepthStencilState()
field. -
pColorBlendState
public VkGraphicsPipelineCreateInfo pColorBlendState(@Nullable VkPipelineColorBlendStateCreateInfo value) Sets the address of the specifiedVkPipelineColorBlendStateCreateInfo
to thepColorBlendState()
field. -
pDynamicState
Sets the address of the specifiedVkPipelineDynamicStateCreateInfo
to 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 newVkGraphicsPipelineCreateInfo
instance allocated withmemAlloc
. The instance must be explicitly freed. -
calloc
Returns a newVkGraphicsPipelineCreateInfo
instance allocated withmemCalloc
. The instance must be explicitly freed. -
create
Returns a newVkGraphicsPipelineCreateInfo
instance allocated withBufferUtils
. -
create
Returns a newVkGraphicsPipelineCreateInfo
instance for the specified memory address. -
createSafe
-
malloc
Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
Create aVkGraphicsPipelineCreateInfo.Buffer
instance 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.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)
instead. -
callocStack
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, MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
@Deprecated public static VkGraphicsPipelineCreateInfo.Buffer callocStack(int capacity, MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
malloc
Returns a newVkGraphicsPipelineCreateInfo
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
calloc
Returns a newVkGraphicsPipelineCreateInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
malloc
Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
calloc
Returns a newVkGraphicsPipelineCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
and 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 thestageCount
field 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
-