#[non_exhaustive]
#[repr(u64)]
pub enum PipelineStage {
Show 37 variants TopOfPipe, DrawIndirect, VertexInput, VertexShader, TessellationControlShader, TessellationEvaluationShader, GeometryShader, FragmentShader, EarlyFragmentTests, LateFragmentTests, ColorAttachmentOutput, ComputeShader, AllTransfer, BottomOfPipe, Host, AllGraphics, AllCommands, Copy, Resolve, Blit, Clear, IndexInput, VertexAttributeInput, PreRasterizationShaders, VideoDecode, VideoEncode, TransformFeedback, ConditionalRendering, AccelerationStructureBuild, RayTracingShader, FragmentDensityProcess, FragmentShadingRateAttachment, CommandPreprocess, TaskShader, MeshShader, SubpassShading, InvocationMask,
}
Expand description

A single stage in the device’s processing pipeline.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

TopOfPipe

A pseudo-stage representing the start of the pipeline.

DrawIndirect

Indirect buffers are read.

VertexInput

Vertex and index buffers are read.

It is currently equivalent to setting all of the following flags, but automatically omitting any that are not supported in a given context. It also implicitly includes future flags that are added to Vulkan, if they are not yet supported by Vulkano.

  • index_input
  • vertex_attribute_input

VertexShader

Vertex shaders are executed.

TessellationControlShader

Tessellation control shaders are executed.

TessellationEvaluationShader

Tessellation evaluation shaders are executed.

GeometryShader

Geometry shaders are executed.

FragmentShader

Fragment shaders are executed.

EarlyFragmentTests

Early fragment tests (depth and stencil tests before fragment shading) are performed. Subpass load operations for framebuffer attachments with a depth/stencil format are performed.

LateFragmentTests

Late fragment tests (depth and stencil tests after fragment shading) are performed. Subpass store operations for framebuffer attachments with a depth/stencil format are performed.

ColorAttachmentOutput

The final color values are output from the pipeline after blending. Subpass load and store operations, multisample resolve operations for framebuffer attachments with a color or depth/stencil format, and clear_attachments are performed.

ComputeShader

Compute shaders are executed.

AllTransfer

The set of all current and future transfer pipeline stages.

It is currently equivalent to setting all of the following flags, but automatically omitting any that are not supported in a given context. It also implicitly includes future flags that are added to Vulkan, if they are not yet supported by Vulkano.

  • copy
  • blit
  • resolve
  • clear
  • acceleration_structure_copy

BottomOfPipe

A pseudo-stage representing the end of the pipeline.

Host

A pseudo-stage representing reads and writes to device memory on the host.

AllGraphics

The set of all current and future graphics pipeline stages.

It is currently equivalent to setting all of the following flags, but automatically omitting any that are not supported in a given context. It also implicitly includes future flags that are added to Vulkan, if they are not yet supported by Vulkano.

  • draw_indirect
  • task_shader
  • mesh_shader
  • vertex_input
  • vertex_shader
  • tessellation_control_shader
  • tessellation_evaluation_shader
  • geometry_shader
  • fragment_shader
  • early_fragment_tests
  • late_fragment_tests
  • color_attachment_output
  • conditional_rendering
  • transform_feedback
  • fragment_shading_rate_attachment
  • fragment_density_process
  • invocation_mask

AllCommands

The set of all current and future pipeline stages of all types.

It is currently equivalent to setting all flags in PipelineStages, but automatically omitting any that are not supported in a given context. It also implicitly includes future flags that are added to Vulkan, if they are not yet supported by Vulkano.

Copy

The copy_buffer, copy_image, copy_buffer_to_image, copy_image_to_buffer and copy_query_pool_results commands are executed.

Resolve

The resolve_image command is executed.

Blit

The blit_image command is executed.

Clear

The clear_color_image, clear_depth_stencil_image, fill_buffer and update_buffer commands are executed.

IndexInput

Index buffers are read.

VertexAttributeInput

Vertex buffers are read.

PreRasterizationShaders

The various pre-rasterization shader types are executed.

It is currently equivalent to setting all of the following flags, but automatically omitting any that are not supported in a given context. It also implicitly includes future flags that are added to Vulkan, if they are not yet supported by Vulkano.

  • vertex_shader
  • tessellation_control_shader
  • tessellation_evaluation_shader
  • geometry_shader
  • task_shader
  • mesh_shader

VideoDecode

Video decode operations are performed.

VideoEncode

Video encode operations are performed.

TransformFeedback

Vertex attribute output values are written to the transform feedback buffers.

ConditionalRendering

The predicate of conditional rendering is read.

AccelerationStructureBuild

Acceleration_structure commands are executed.

RayTracingShader

The various ray tracing shader types are executed.

FragmentDensityProcess

The fragment density map is read to generate the fragment areas.

FragmentShadingRateAttachment

The fragment shading rate attachment or shading rate image is read to determine the fragment shading rate for portions of a rasterized primitive.

CommandPreprocess

Device-side preprocessing for generated commands via the preprocess_generated_commands command is handled.

TaskShader

Task shaders are executed.

MeshShader

Mesh shaders are executed.

SubpassShading

Subpass shading shaders are executed.

InvocationMask

The invocation mask image is read to optimize ray dispatch.

Implementations

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.