Struct vulkano::sync::PipelineStages
source · pub struct PipelineStages {Show 38 fields
pub top_of_pipe: bool,
pub draw_indirect: bool,
pub vertex_input: bool,
pub vertex_shader: bool,
pub tessellation_control_shader: bool,
pub tessellation_evaluation_shader: bool,
pub geometry_shader: bool,
pub fragment_shader: bool,
pub early_fragment_tests: bool,
pub late_fragment_tests: bool,
pub color_attachment_output: bool,
pub compute_shader: bool,
pub all_transfer: bool,
pub bottom_of_pipe: bool,
pub host: bool,
pub all_graphics: bool,
pub all_commands: bool,
pub copy: bool,
pub resolve: bool,
pub blit: bool,
pub clear: bool,
pub index_input: bool,
pub vertex_attribute_input: bool,
pub pre_rasterization_shaders: bool,
pub video_decode: bool,
pub video_encode: bool,
pub transform_feedback: bool,
pub conditional_rendering: bool,
pub acceleration_structure_build: bool,
pub ray_tracing_shader: bool,
pub fragment_density_process: bool,
pub fragment_shading_rate_attachment: bool,
pub command_preprocess: bool,
pub task_shader: bool,
pub mesh_shader: bool,
pub subpass_shading: bool,
pub invocation_mask: bool,
pub _ne: NonExhaustive,
}
Expand description
A set of stages in the device’s processing pipeline.
Fields
top_of_pipe: bool
A pseudo-stage representing the start of the pipeline.
draw_indirect: bool
Indirect buffers are read.
vertex_input: bool
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
vertex_shader: bool
Vertex shaders are executed.
tessellation_control_shader: bool
Tessellation control shaders are executed.
tessellation_evaluation_shader: bool
Tessellation evaluation shaders are executed.
geometry_shader: bool
Geometry shaders are executed.
fragment_shader: bool
Fragment shaders are executed.
early_fragment_tests: bool
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.
late_fragment_tests: bool
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.
color_attachment_output: bool
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.
compute_shader: bool
Compute shaders are executed.
all_transfer: bool
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
bottom_of_pipe: bool
A pseudo-stage representing the end of the pipeline.
host: bool
A pseudo-stage representing reads and writes to device memory on the host.
all_graphics: bool
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
all_commands: bool
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: bool
The copy_buffer
, copy_image
, copy_buffer_to_image
, copy_image_to_buffer
and
copy_query_pool_results
commands are executed.
resolve: bool
The resolve_image
command is executed.
blit: bool
The blit_image
command is executed.
clear: bool
The clear_color_image
, clear_depth_stencil_image
, fill_buffer
and update_buffer
commands are executed.
index_input: bool
Index buffers are read.
vertex_attribute_input: bool
Vertex buffers are read.
pre_rasterization_shaders: bool
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
video_decode: bool
Video decode operations are performed.
video_encode: bool
Video encode operations are performed.
transform_feedback: bool
Vertex attribute output values are written to the transform feedback buffers.
conditional_rendering: bool
The predicate of conditional rendering is read.
acceleration_structure_build: bool
Acceleration_structure commands are executed.
ray_tracing_shader: bool
The various ray tracing shader types are executed.
fragment_density_process: bool
The fragment density map is read to generate the fragment areas.
fragment_shading_rate_attachment: bool
The fragment shading rate attachment or shading rate image is read to determine the fragment shading rate for portions of a rasterized primitive.
command_preprocess: bool
Device-side preprocessing for generated commands via the preprocess_generated_commands
command is handled.
task_shader: bool
Task shaders are executed.
mesh_shader: bool
Mesh shaders are executed.
subpass_shading: bool
Subpass shading shaders are executed.
invocation_mask: bool
The invocation mask image is read to optimize ray dispatch.
_ne: NonExhaustive
Implementations
sourceimpl PipelineStages
impl PipelineStages
sourcepub const fn none() -> Self
👎Deprecated since 0.31.0: Use empty
instead.
pub const fn none() -> Self
empty
instead.Returns a PipelineStages
with none of the flags set.
sourcepub const fn intersects(&self, other: &Self) -> bool
pub const fn intersects(&self, other: &Self) -> bool
Returns whether any flags are set in both self
and other
.
sourcepub const fn contains(&self, other: &Self) -> bool
pub const fn contains(&self, other: &Self) -> bool
Returns whether all flags in other
are set in self
.
sourcepub const fn intersection(&self, other: &Self) -> Self
pub const fn intersection(&self, other: &Self) -> Self
Returns the intersection of self
and other
.
sourcepub const fn difference(&self, other: &Self) -> Self
pub const fn difference(&self, other: &Self) -> Self
Returns self
without the flags set in other
.
sourcepub const fn symmetric_difference(&self, other: &Self) -> Self
pub const fn symmetric_difference(&self, other: &Self) -> Self
Returns the flags set in self
or other
, but not both.
sourceimpl PipelineStages
impl PipelineStages
sourcepub fn supported_access(&self) -> AccessFlags
pub fn supported_access(&self) -> AccessFlags
Returns the access types that are supported with the given pipeline stages.
Corresponds to the table “Supported access types” in the Vulkan specification.
Trait Implementations
sourceimpl BitAnd<PipelineStages> for PipelineStages
impl BitAnd<PipelineStages> for PipelineStages
type Output = PipelineStages
type Output = PipelineStages
&
operator.sourceimpl BitAndAssign<PipelineStages> for PipelineStages
impl BitAndAssign<PipelineStages> for PipelineStages
sourcefn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moresourceimpl BitOr<PipelineStages> for PipelineStages
impl BitOr<PipelineStages> for PipelineStages
type Output = PipelineStages
type Output = PipelineStages
|
operator.sourceimpl BitOrAssign<PipelineStages> for PipelineStages
impl BitOrAssign<PipelineStages> for PipelineStages
sourcefn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moresourceimpl BitXor<PipelineStages> for PipelineStages
impl BitXor<PipelineStages> for PipelineStages
type Output = PipelineStages
type Output = PipelineStages
^
operator.sourceimpl BitXorAssign<PipelineStages> for PipelineStages
impl BitXorAssign<PipelineStages> for PipelineStages
sourcefn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read moresourceimpl Clone for PipelineStages
impl Clone for PipelineStages
sourcefn clone(&self) -> PipelineStages
fn clone(&self) -> PipelineStages
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for PipelineStages
impl Debug for PipelineStages
sourceimpl Default for PipelineStages
impl Default for PipelineStages
sourceimpl From<PipelineStage> for PipelineStages
impl From<PipelineStage> for PipelineStages
sourcefn from(val: PipelineStage) -> Self
fn from(val: PipelineStage) -> Self
sourceimpl From<PipelineStageFlags2> for PipelineStages
impl From<PipelineStageFlags2> for PipelineStages
sourcefn from(val: PipelineStageFlags2) -> Self
fn from(val: PipelineStageFlags2) -> Self
sourceimpl From<PipelineStages> for PipelineStageFlags
impl From<PipelineStages> for PipelineStageFlags
sourcefn from(val: PipelineStages) -> Self
fn from(val: PipelineStages) -> Self
sourceimpl From<PipelineStages> for PipelineStageFlags2
impl From<PipelineStages> for PipelineStageFlags2
sourcefn from(val: PipelineStages) -> Self
fn from(val: PipelineStages) -> Self
sourceimpl From<ShaderStages> for PipelineStages
impl From<ShaderStages> for PipelineStages
sourcefn from(stages: ShaderStages) -> PipelineStages
fn from(stages: ShaderStages) -> PipelineStages
sourceimpl Hash for PipelineStages
impl Hash for PipelineStages
sourceimpl PartialEq<PipelineStages> for PipelineStages
impl PartialEq<PipelineStages> for PipelineStages
sourcefn eq(&self, other: &PipelineStages) -> bool
fn eq(&self, other: &PipelineStages) -> bool
sourceimpl Sub<PipelineStages> for PipelineStages
impl Sub<PipelineStages> for PipelineStages
type Output = PipelineStages
type Output = PipelineStages
-
operator.sourceimpl SubAssign<PipelineStages> for PipelineStages
impl SubAssign<PipelineStages> for PipelineStages
sourcefn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read more