Vixen
02b45cc4
csharp
public record class RavenReflection

Everything the engine needs to bind and drive one compiled shader, without asking a driver anything at runtime.

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

Remarks

This is what Vixen.Shaders.Generators turns into C# and what the RHI turns into descriptor set layouts. It comes from the semantic and lowering phases, never from parsing back emitted GLSL or SPIR-V — so it is the same on every backend by construction rather than by agreement.

Offsets and strides are explicit on every member for the same reason: the engine writes constant buffers by generated offset, and a number that came from one backend's reflection is a number the other backend might not share.

Fields and properties (11)

  • public ImmutableArray<DescriptorSetInfo> Sets

    Descriptor sets, ordered by set index.

  • public ImmutableArray<VertexInputInfo> VertexInputs

    Vertex inputs, ordered by location. Empty unless there is a vertex stage.

  • public ImmutableArray<FragmentOutputInfo> Outputs

    Fragment outputs, ordered by location.

  • public ImmutableArray<PushConstantInfo> PushConstants

    Push-constant ranges. Always empty for now: Raven has no syntax for push constants, and reporting a guess would be worse than reporting none.

  • public ImmutableArray<SpecConstantInfo> SpecConstants

    Specialisation constants. Always empty, and always will be while permutation keys are resolved at compile time: see Permutations, which is what Raven has instead.

  • public ImmutableArray<PermutationInfo> Permutations

    The [Permutation] keys this shader declares, with their defaults — what a host may vary to get a different variant.

  • public ImmutableArray<ValueParameterInfo> ValueParameters

    The val type parameters this shader declares. Required rather than defaulted — see ValueParameterInfo.

  • public ImmutableArray<ParameterInfo> Parameters

    Every writable value, flattened out of Sets.

  • public ImmutableArray<string> RequiredCapabilities

    Target features this shader needs. See IrCapability.

  • public ImmutableArray<string> UsedPermutationKeys

    The permutation keys that actually affected this output, sorted. The effect cache key hashes these, not every key that was passed in.

  • public ImmutableArray<ShaderStage> Stages

    The stages this shader provides.

Used by (30)

  • LayoutGateTestsVixen.Raven.Gpu.Tests
  • ResultVixen.Raven.Gpu.Tests
  • ShaderRunVixen.Raven.Gpu.Tests
  • VfxShaderUniformTestsVixen.Vfx.Tests
  • BindlessTextureTestsVixen.Raven.Tests
  • CompileDriverVixen.Raven.Cli
  • CompiledEffectVixen.Raven
  • CompiledEffectTestsVixen.Raven.Tests
  • ComposeInterfaceTestsVixen.Raven.Tests
  • ComputeTestsVixen.Raven.Tests
  • ConventionTestsVixen.Raven.Tests
  • DescriptorSetTestsVixen.Raven.Tests
  • EffectTranslatorVixen.ShaderCompiler
  • HeaderVixen.Raven
  • LibraryReflectionTestsVixen.Raven.Tests
  • MaterialRecordTestsVixen.Raven.Tests
  • PushConstantTestsVixen.Raven.Tests
  • RavenEffectCompilerVixen.ShaderCompiler
  • RayQueryTestsVixen.Raven.Tests
  • ReflectionBuilderVixen.Raven
  • ReflectionTestsVixen.Raven.Tests
  • RenderTargetTestsVixen.Raven.Tests
  • SampledTextureTestsVixen.Raven.Tests
  • SharedBindingTestsVixen.Raven.Tests
  • SizedArrayTestsVixen.Raven.Tests
  • StageBuiltInTestsVixen.Raven.Tests
  • StorageImageTestsVixen.Raven.Tests
  • StreamTestsVixen.Raven.Tests
  • TupleTestsVixen.Raven.Tests
  • WritableResourceTestsVixen.Raven.Tests