Vixen
dd8b0a81
csharp
public sealed class IrStream

An interstage value the shader declares with stream: written by one stage, read by the next.

Read the guide page for this →

Remarks

Deliberately not an IrBinding. A binding is host-visible state with a descriptor; a stream is per-invocation and lives in the pipeline's own interface, so nothing about it reaches BindingPlan or the descriptor sets.

The variable it carries is a module-scope global, which is exactly how both targets model a stage interface — a SPIR-V Input/Output variable and a GLSL in/out are both module scope. So a read lowers to an ordinary load and a write to an ordinary store, and it is the direction that the backend resolves per stage. Which direction a stage needs is not declared: see StreamInputs.

Fields and properties (4)

  • public IrVariable Variable
  • public string Name
  • public IrType Type
  • public InterpolationMode Interpolation

    How the rasteriser interpolates it, from [Interpolation("…")] on the stream declaration.

Methods (2)

  • public IrStream(IrVariable variable, InterpolationMode interpolation = Smooth)

    An interstage value the shader declares with stream: written by one stage, read by the next.

  • public override string ToString()

Used by (13)

  • GlslEmitterVixen.Raven
  • InheritanceTestsVixen.Raven.Tests
  • InterpolationTestsVixen.Raven.Tests
  • IrEntryPointVixen.Raven
  • IrPrinterVixen.Raven
  • IrShaderVixen.Raven
  • LibraryBuilderVixen.Raven
  • LowererVixen.Raven
  • PlannedStreamVixen.Raven
  • ReflectionBuilderVixen.Raven
  • SpirvEmitterVixen.Raven
  • StreamPlanVixen.Raven
  • StreamTestsVixen.Raven.Tests