public record class RavenReflectionEverything 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> SetsDescriptor sets, ordered by set index.
public ImmutableArray<VertexInputInfo> VertexInputsVertex inputs, ordered by location. Empty unless there is a vertex stage.
public ImmutableArray<FragmentOutputInfo> OutputsFragment outputs, ordered by location.
public ImmutableArray<PushConstantInfo> PushConstantsPush-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> SpecConstantsSpecialisation 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> PermutationsThe [Permutation] keys this shader declares, with their defaults — what a host may vary to get a different variant.
public ImmutableArray<ValueParameterInfo> ValueParametersThe val type parameters this shader declares. Required rather than defaulted — see ValueParameterInfo.
public ImmutableArray<ParameterInfo> ParametersEvery writable value, flattened out of Sets.
public ImmutableArray<string> RequiredCapabilitiesTarget features this shader needs. See IrCapability.
public ImmutableArray<string> UsedPermutationKeysThe permutation keys that actually affected this output, sorted. The effect cache key hashes these, not every key that was passed in.
public ImmutableArray<ShaderStage> StagesThe 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