Module vulkano::pipeline::layout[][src]

Expand description

A pipeline layout describes the layout of descriptors and push constants used by a graphics pipeline or a compute pipeline.

The layout itself only describes the descriptors and push constants, and does not contain the content of the push constants or the actual list of resources that are going to be available through the descriptors. Push constants are set when you submit a draw command, and the list of resources is set by creating descriptor set objects and passing these sets when you submit a draw command.

Pipeline layout objects

A pipeline layout is something that you must describe to the Vulkan implementation by creating a pipeline layout object, represented by the PipelineLayout struct in vulkano.

Each graphics pipeline or compute pipeline that you create therefore holds a pipeline layout object By default, creating a pipeline automatically builds a new pipeline layout object describing the union of all the descriptors and push constants of all the shaders used by the pipeline.

The PipelineLayout struct describes the pipeline layout to both the Vulkan implementation and to vulkano. It holds a PipelineLayoutDesc value.

Custom pipeline layouts

In some situations, it is better (as in, faster) to share the same descriptor set or sets between multiple pipelines that each use different descriptors. To do so, you have to create a pipeline layout object in advance and pass it when you create the pipelines.

TODO: write this section

Structs

Wrapper around the PipelineLayout Vulkan object. Describes to the Vulkan implementation the descriptor sets and push constants available to your shaders.

Description of a range of the push constants of a pipeline layout.

Enums

Error that can happen when creating a pipeline layout.

The pipeline layout description isn’t compatible with the hardware limits.

Error when checking whether a pipeline layout is a superset of another one.