pub struct StageIo {
pub varyings: FastHashMap<ShaderLocation, InterfaceVar>,
pub task_payload_size: Option<u32>,
pub primitive_index: Option<bool>,
pub immediates: ImmediateUsage,
}Expand description
Summary of one shader stage’s outputs, presented as inputs to the next stage.
Each stage in a pipeline produces one of these values, to be validated against the input requirements of the pipeline’s next stage.
Fields§
§varyings: FastHashMap<ShaderLocation, InterfaceVar>The prior stage’s Varying::UserDefined outputs.
task_payload_size: Option<u32>If the prior stage was a task shader, the size of its payload global.
This must match the mesh shader’s payload global.
primitive_index: Option<bool>If the prior was a mesh shader, whether it output
BuiltIn::PrimitiveIndex.
In a mesh pipeline on DX12, the mesh shader and fragment shader must
agree on whether PrimitiveIndex is passed between them.
This is None if the prior stage was not a mesh shader.
immediates: ImmediateUsageThe set of immediate data slots the prior stage used.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StageIo
impl RefUnwindSafe for StageIo
impl Send for StageIo
impl Sync for StageIo
impl Unpin for StageIo
impl UnsafeUnpin for StageIo
impl UnwindSafe for StageIo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more