Vixen
02b45cc4
csharp
public record class IrPermutation

A [Permutation] key the shader declares, with the default it falls back to.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Recorded even though the key itself is gone by this point — folded into a constant, its dead branch eliminated. That is the point: nothing downstream could otherwise answer "what can this shader be varied by?", which is what a host needs to enumerate variants and what the C# key generator emits a PermutationKey for.

Deliberately not the same thing as Compilation.UsedPermutationKeys. That is what this variant read, and it is the cache key. This is what the shader declares, and it is the same for every variant — which it has to be, or the generated C# API would change shape depending on which variant happened to compile.

Fields and properties (3)

  • public string Name

    The declared name.

  • public IrType Type

    Its type: bool, int or uint.

  • public object? DefaultValue

    The declared default, which every permutation key has (RVN2063).

Methods (1)

  • public IrPermutation(string Name, IrType Type, object? DefaultValue)

    A [Permutation] key the shader declares, with the default it falls back to.

Used by (5)

  • IrPrinterVixen.Raven
  • IrShaderVixen.Raven
  • LibraryTreeTestsVixen.Raven.Tests
  • LowererVixen.Raven
  • ReflectionBuilderVixen.Raven