#[non_exhaustive]pub enum Stage {
Show 14 variants
Vertex,
Pixel,
Compute,
Hull,
Domain,
Geometry,
Mesh,
Amplification,
RayGeneration,
Intersection,
AnyHit,
ClosestHit,
Miss,
Callable,
}Expand description
The pipeline stage a program runs in.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Vertex
A vertex program: one invocation per vertex.
Pixel
A pixel (fragment) program: one invocation per covered pixel.
Compute
A compute program: no varyings, system inputs naming the invocation, a thread group size.
Hull
A hull program: the control-point phase and the patch-constant function of a tessellated patch (see
super::StageFacts::Hull).
Domain
A domain program: a vertex of a tessellated patch from its domain location (see super::StageFacts::Domain).
Geometry
A geometry program.
Mesh
A mesh program: a thread group that writes the vertices and primitives of one meshlet (see
super::StageFacts::Mesh); its outputs are the per-vertex varyings of the interface.
Amplification
An amplification (task) program: a thread group that launches mesh thread groups, handing each the words of
its task payload (see super::StageFacts::Amplification). It has no varyings.
RayGeneration
A ray generation program: the start of a ray tracing dispatch, one invocation per dispatched ray position.
Intersection
An intersection program: tests a ray against a procedural primitive and reports hits.
AnyHit
An any-hit program: decides whether a candidate hit counts.
ClosestHit
A closest-hit program: runs for the nearest accepted hit of a traced ray.
Miss
A miss program: runs when a traced ray hits nothing.
Callable
A callable program: run by another ray tracing program (CallShader).
Implementations§
Source§impl Stage
impl Stage
Sourcepub fn has_thread_groups(self) -> bool
pub fn has_thread_groups(self) -> bool
Whether a program of this stage runs in thread groups (numthreads): a compute, mesh or amplification
program, whose invocations share workgroup memory and meet at a workgroup barrier.
Sourcepub fn is_ray_tracing(self) -> bool
pub fn is_ray_tracing(self) -> bool
Whether this is one of the ray tracing pipeline’s stages: a program of it is functions that read the ray’s
system values and carry a payload, not an entry point (see iridia::stage_functions).