Enum vulkano::sync::PipelineStage
source · #[non_exhaustive]#[repr(u64)]pub enum PipelineStage {
Show 40 variants
TopOfPipe = 1,
DrawIndirect = 2,
VertexInput = 4,
VertexShader = 8,
TessellationControlShader = 16,
TessellationEvaluationShader = 32,
GeometryShader = 64,
FragmentShader = 128,
EarlyFragmentTests = 256,
LateFragmentTests = 512,
ColorAttachmentOutput = 1_024,
ComputeShader = 2_048,
AllTransfer = 4_096,
BottomOfPipe = 8_192,
Host = 16_384,
AllGraphics = 32_768,
AllCommands = 65_536,
Copy = 4_294_967_296,
Resolve = 8_589_934_592,
Blit = 17_179_869_184,
Clear = 34_359_738_368,
IndexInput = 68_719_476_736,
VertexAttributeInput = 137_438_953_472,
PreRasterizationShaders = 274_877_906_944,
VideoDecode = 67_108_864,
VideoEncode = 134_217_728,
TransformFeedback = 16_777_216,
ConditionalRendering = 262_144,
AccelerationStructureBuild = 33_554_432,
RayTracingShader = 2_097_152,
FragmentDensityProcess = 8_388_608,
FragmentShadingRateAttachment = 4_194_304,
CommandPreprocess = 131_072,
TaskShader = 524_288,
MeshShader = 1_048_576,
SubpassShading = 549_755_813_888,
InvocationMask = 1_099_511_627_776,
AccelerationStructureCopy = 268_435_456,
MicromapBuild = 1_073_741_824,
OpticalFlow = 536_870_912,
}
Expand description
A single stage in the device’s processing pipeline.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
TopOfPipe = 1
A pseudo-stage representing the start of the pipeline.
DrawIndirect = 2
Indirect buffers are read.
VertexInput = 4
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 = 8
Vertex shaders are executed.
TessellationControlShader = 16
Tessellation control shaders are executed.
TessellationEvaluationShader = 32
Tessellation evaluation shaders are executed.
GeometryShader = 64
Geometry shaders are executed.
FragmentShader = 128
Fragment shaders are executed.
EarlyFragmentTests = 256
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 = 512
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 = 1_024
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 = 2_048
Compute shaders are executed.
AllTransfer = 4_096
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 = 8_192
A pseudo-stage representing the end of the pipeline.
Host = 16_384
A pseudo-stage representing reads and writes to device memory on the host.
AllGraphics = 32_768
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 = 65_536
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 = 4_294_967_296
The copy_buffer
, copy_image
, copy_buffer_to_image
, copy_image_to_buffer
and
copy_query_pool_results
commands are executed.
Resolve = 8_589_934_592
The resolve_image
command is executed.
Blit = 17_179_869_184
The blit_image
command is executed.
Clear = 34_359_738_368
The clear_color_image
, clear_depth_stencil_image
, fill_buffer
and update_buffer
commands are executed.
IndexInput = 68_719_476_736
Index buffers are read.
VertexAttributeInput = 137_438_953_472
Vertex buffers are read.
PreRasterizationShaders = 274_877_906_944
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 = 67_108_864
Video decode operations are performed.
VideoEncode = 134_217_728
Video encode operations are performed.
TransformFeedback = 16_777_216
Vertex attribute output values are written to the transform feedback buffers.
ConditionalRendering = 262_144
The predicate of conditional rendering is read.
AccelerationStructureBuild = 33_554_432
Acceleration_structure commands are executed.
RayTracingShader = 2_097_152
The various ray tracing shader types are executed.
FragmentDensityProcess = 8_388_608
The fragment density map is read to generate the fragment areas.
FragmentShadingRateAttachment = 4_194_304
The fragment shading rate attachment or shading rate image is read to determine the fragment shading rate for portions of a rasterized primitive.
CommandPreprocess = 131_072
Device-side preprocessing for generated commands via the preprocess_generated_commands
command is handled.
TaskShader = 524_288
Task shaders are executed.
MeshShader = 1_048_576
Mesh shaders are executed.
SubpassShading = 549_755_813_888
Subpass shading shaders are executed.
InvocationMask = 1_099_511_627_776
The invocation mask image is read to optimize ray dispatch.
AccelerationStructureCopy = 268_435_456
The copy_acceleration_structure
command is executed.
MicromapBuild = 1_073_741_824
Micromap commands are executed.
OpticalFlow = 536_870_912
Optical flow operations are performed.
Trait Implementations§
source§impl Clone for PipelineStage
impl Clone for PipelineStage
source§fn clone(&self) -> PipelineStage
fn clone(&self) -> PipelineStage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PipelineStage
impl Debug for PipelineStage
source§impl From<PipelineStage> for PipelineStageFlags
impl From<PipelineStage> for PipelineStageFlags
source§fn from(val: PipelineStage) -> Self
fn from(val: PipelineStage) -> Self
source§impl From<PipelineStage> for PipelineStageFlags2
impl From<PipelineStage> for PipelineStageFlags2
source§fn from(val: PipelineStage) -> Self
fn from(val: PipelineStage) -> Self
source§impl From<PipelineStage> for PipelineStages
impl From<PipelineStage> for PipelineStages
source§fn from(val: PipelineStage) -> Self
fn from(val: PipelineStage) -> Self
source§impl FromIterator<PipelineStage> for PipelineStages
impl FromIterator<PipelineStage> for PipelineStages
source§fn from_iter<T>(iter: T) -> Selfwhere
T: IntoIterator<Item = PipelineStage>,
fn from_iter<T>(iter: T) -> Selfwhere T: IntoIterator<Item = PipelineStage>,
source§impl Hash for PipelineStage
impl Hash for PipelineStage
source§impl PartialEq for PipelineStage
impl PartialEq for PipelineStage
source§fn eq(&self, other: &PipelineStage) -> bool
fn eq(&self, other: &PipelineStage) -> bool
self
and other
values to be equal, and is used
by ==
.