Vulkan-Docs/doc/specs/vulkan/man/vkCreateGraphicsPipelines.txt

86 lines
4.0 KiB
Plaintext

vkCreateGraphicsPipelines(3)
============================
Name
----
vkCreateGraphicsPipelines - Create graphics pipelines.
C Specification
---------------
include::../protos/vkCreateGraphicsPipelines.txt[]
Parameters
----------
pname:device::
A handle to the device to use to create the new graphics pipeline(s).
pname:pipelineCache::
A handle to a pipeline cache from which the result of previous compiles may
be retrieved, and to which the result of this compile may be stored.
pname:createInfoCount::
The number of pipelines to create.
pname:pCreateInfos::
Pointer to an array of pname:createInfoCount
sname:VkGraphicsPipelineCreateInfo structures defining the contents of
the new pipelines.
pname:pPipelines::
A pointer to an array to receive the handle(s) to the new graphics pipeline object(s).
Description
-----------
fname:vkCreateGraphicsPipelines creates new graphics pipeline objects using the device specified in
pname:device and the creation information specified in the structures pointed to by pname:pCreateInfos and
deposits the resulting handles in the array pointed to by pname:pPipelines. The definition
of slink:VkGraphicsPipelineCreateInfo is:
include::../structs/VkGraphicsPipelineCreateInfo.txt[]
.Create Info Details
- pname:pStages points to an array of pname:stageCount slink:VkPipelineShaderStageCreateInfo objects describing the stages comprising the pipeline. At minimum, the vertex shader stage must be defined.
- pname:pVertexInputState points to a slink:VkPipelineVertexInputStateCreateInfo object describing the layout of the vertex buffers as well as the attributes within the buffers for the pipeline.
- pname:pInputAssemblyState points to a slink:VkPipelineInputAssemblyStateCreateInfo object describing the input assembly state for the pipeline, including the primitive type and topology.
- pname:pTessellationState points to a slink:VkPipelineTessellationStateCreateInfo object describing the patch control state for the tesselation stage of the pipeline, or is set to 'NULL' if no tesselation stage is defined.
- pname:pViewportState points to a slink:VkPipelineViewportStateCreateInfo object describing the viewport state for the pipeline.
- pname:pRasterizationState points to a slink:VkPipelineRasterizationStateCreateInfo object describing the rasterizer state for the pipeline, including fill mode, clip mode, and face orientation.
- pname:pMultisampleState points to a slink:VkPipelineMultisampleStateCreateInfo object describing the multisample state for the pipeline.
- pname:pDepthStencilState points to a slink:VkPipelineDepthStencilStateCreateInfo object describing the depth and stencil state for the pipeline.
- pname:pColorBlendState points to a slink:VkPipelineColorBlendStateCreateInfo object describing the color buffer state for the pipeline, including state for each of the attachments that will be bound to the framebuffer.
- pname:flags is an instance of elink:VkPipelineCreateFlags, indicating additional usage hint (e.g., if this pipeline will be used to create derivative pipelines).
- pname:layout is a handle to a sname:VkPipelineLayout object created with fname:vkCreatePipelineLayout.
- pname:renderPass is a handle to a sname:VkRenderPass object describing a renderpass the pipeline will be compatible with.
- pname:subpass is the index of the subpass in the pname:renderPass the pipeline will be compatible with.
The created pipeline may only be used in a subpass compatible with the provided pname:renderPass and pname:subpass.
Two subpasses are compatible if they have the same index in their render passes, and if the render pass descriptions are
identical except for attachment load and store ops and image layouts. For a render pass with only one subpass,
the subpasses are compatible if they have the same number and kind of attachments, and if corresponding attachments
have the same format and sample count.
include::../validity/protos/vkCreateGraphicsPipelines.txt[]
See Also
--------
flink:vkCreateComputePipelines, flink:vkCmdBindPipeline, flink:vkDestroyPipeline
include::footer.txt[]