public record class IrStageIoOne input or output of an entry point.
Remarks
is what multiple render targets are made of. A stage interface variable gets one location and therefore has to be one scalar or vector, so a fragment stage writing four targets returns a struct and the entry-point wrapper takes it apart — one extract, one store, per target. Recording the index here rather than re-deriving it in each backend keeps the two from disagreeing about which member is which target.
Fields and properties (5)
public string NameThe interface variable's name.
public IrType TypeIts type, which StageInterface has to accept.
public string? SemanticThe pipeline semantic, if any.
public int? MemberFor an output, the index of the returned struct's member this output takes its value from; null when the output is the returned value.
public InterpolationMode InterpolationHow the rasteriser interpolates it, from [Interpolation("…")] on the parameter. Only a fragment stage's inputs can carry one; everything else is Smooth and means nothing.
Methods (1)
public IrStageIo(string Name, IrType Type, string? Semantic, int? Member = null, InterpolationMode Interpolation = Smooth)One input or output of an entry point.
Used by (11)
- GlslEmitterVixen.Raven
- ImportPrunerVixen.Raven
- IrCapabilitiesVixen.Raven
- IrEntryPointVixen.Raven
- IrPrinterVixen.Raven
- LowererVixen.Raven
- LoweringTestsVixen.Raven.Tests
- ReflectionBuilderVixen.Raven
- RenderTargetTestsVixen.Raven.Tests
- SpirvEmitterVixen.Raven
- StreamPlanVixen.Raven