Vulkan-Docs/doc/specs/vulkan/man/VkGraphicsPipelineCreateInf...

132 lines
6.2 KiB
Plaintext

// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
VkGraphicsPipelineCreateInfo(3)
===============================
Name
----
VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline
C Specification
---------------
// refBegin VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline
The sname:VkGraphicsPipelineCreateInfo structure is defined as:
include::../api/structs/VkGraphicsPipelineCreateInfo.txt[]
Members
-------
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is a bitmask of elink:VkPipelineCreateFlagBits controlling
how the pipeline will be generated, as described below.
* pname:stageCount is the number of entries in the pname:pStages array.
* pname:pStages is an array of size pname:stageCount structures of type
slink:VkPipelineShaderStageCreateInfo describing the set of the shader
stages to be included in the graphics pipeline.
* pname:pVertexInputState is a pointer to an instance of the
slink:VkPipelineVertexInputStateCreateInfo structure.
* pname:pInputAssemblyState is a pointer to an instance of the
slink:VkPipelineInputAssemblyStateCreateInfo structure which determines
input assembly behavior, as described in <<drawing, Drawing Commands>>.
* pname:pTessellationState is a pointer to an instance of the
slink:VkPipelineTessellationStateCreateInfo structure, or `NULL` if the
pipeline does not include a tessellation control shader stage and
tessellation evaluation shader stage.
* pname:pViewportState is a pointer to an instance of the
slink:VkPipelineViewportStateCreateInfo structure, or `NULL` if the
pipeline has rasterization disabled.
* pname:pRasterizationState is a pointer to an instance of the
slink:VkPipelineRasterizationStateCreateInfo structure.
* pname:pMultisampleState is a pointer to an instance of the
slink:VkPipelineMultisampleStateCreateInfo, or `NULL` if the pipeline
has rasterization disabled.
* pname:pDepthStencilState is a pointer to an instance of the
slink:VkPipelineDepthStencilStateCreateInfo structure, or `NULL` if the
pipeline has rasterization disabled or if the subpass of the render pass
the pipeline is created against does not use a depth/stencil attachment.
* pname:pColorBlendState is a pointer to an instance of the
slink:VkPipelineColorBlendStateCreateInfo structure, or `NULL` if the
pipeline has rasterization disabled or if the subpass of the render pass
the pipeline is created against does not use any color attachments.
* pname:pDynamicState is a pointer to
slink:VkPipelineDynamicStateCreateInfo and is used to indicate which
properties of the pipeline state object are dynamic and can: be changed
independently of the pipeline state. This can: be `NULL`, which means no
state in the pipeline is considered dynamic.
* pname:layout is the description of binding locations used by both the
pipeline and descriptor sets used with the pipeline.
* pname:renderPass is a handle to a render pass object describing the
environment in which the pipeline will be used; the pipeline can: be
used with an instance of any render pass compatible with the one
provided. See <<renderpass-compatibility,Render Pass Compatibility>> for
more information.
* pname:subpass is the index of the subpass in pname:renderPass where this
pipeline will be used.
* pname:basePipelineHandle is a pipeline to derive from.
* pname:basePipelineIndex is an index into the pname:pCreateInfos
parameter to use as a pipeline to derive from.
Description
-----------
The parameters pname:basePipelineHandle and pname:basePipelineIndex are
described in more detail in
<<pipelines-pipeline-derivatives,Pipeline Derivatives>>.
pname:pStages points to an array of slink:VkPipelineShaderStageCreateInfo
structures, which were previously described in
<<pipelines-compute,Compute Pipelines>>.
Bits which can: be set in pname:flags are:
// refBegin VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is generated
include::../api/enums/VkPipelineCreateFlagBits.txt[]
* ename:VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT specifies that the
created pipeline will not be optimized. Using this flag may: reduce
the time taken to create the pipeline.
* ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT specifies that the
pipeline to be created is allowed to be the parent of a pipeline that
will be created in a subsequent call to flink:vkCreateGraphicsPipelines.
* ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT specifies that the pipeline to
be created will be a child of a previously created parent pipeline.
It is valid to set both ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT and
ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT. This allows a pipeline to be both a
parent and possibly a child in a pipeline hierarchy. See
<<pipelines-pipeline-derivatives,Pipeline Derivatives>> for more
information.
pname:pDynamicState points to a structure of type
sname:VkPipelineDynamicStateCreateInfo.
include::../validity/structs/VkGraphicsPipelineCreateInfo.txt[]
See Also
--------
slink:VkPipeline, slink:VkPipelineColorBlendStateCreateInfo, elink:VkPipelineCreateFlags, slink:VkPipelineDepthStencilStateCreateInfo, slink:VkPipelineDynamicStateCreateInfo, slink:VkPipelineInputAssemblyStateCreateInfo, slink:VkPipelineLayout, slink:VkPipelineMultisampleStateCreateInfo, slink:VkPipelineRasterizationStateCreateInfo, slink:VkPipelineShaderStageCreateInfo, slink:VkPipelineTessellationStateCreateInfo, slink:VkPipelineVertexInputStateCreateInfo, slink:VkPipelineViewportStateCreateInfo, slink:VkRenderPass, elink:VkStructureType, flink:vkCreateGraphicsPipelines
Document Notes
--------------
For more information, see the Vulkan Specification at URL
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkGraphicsPipelineCreateInfo
This page is extracted from the Vulkan Specification.
Fixes and changes should be made to the Specification,not directly.
include::footer.txt[]