public record class CompiledEffectA compiled effect: every stage's module, the interface to bind it against, and enough provenance to know whether it is still valid.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The unit the runtime loads instead of compiling. It is written as .rvnfx by CompiledEffectWriter and read back by CompiledEffectReader.
PermutationKey and SourceHash together answer "can I use this?". The key is built from the permutation values that mattered, so two variants differing only in an unread flag share one artefact rather than filling the cache with duplicates.
Fields and properties (6)
public required string NameName of the shader this was compiled from.
public required string TargetBackend that produced the modules, as TargetBackends names it.
public ImmutableArray<EffectModule> ModulesOne module per stage.
public required RavenReflection ReflectionThe interface to bind against.
public ImmutableSortedDictionary<string, string> PermutationKeyThe permutation values that produced this, keyed by name — only the keys that were actually read. This is the cache key.
public string SourceHashHash of the source this was compiled from, so a stale artefact can be detected without recompiling to compare.
Methods (2)
public EffectModule? ModuleFor(ShaderStage stage)The module for a stage, or null if this effect has none.
public static CompiledEffect Create(string name, string target, IEnumerable<GeneratedSource> generated, RavenReflection reflection, PermutationValues? permutationValues = null, IEnumerable<string>? sources = null)Builds the artefact for one shader out of a finished compilation.
Used by (6)
- CompileDriverVixen.Raven.Cli
- CompiledEffectReaderVixen.Raven
- CompiledEffectTestsVixen.Raven.Tests
- CompiledEffectWriterVixen.Raven
- EffectTranslatorVixen.ShaderCompiler
- RavenEffectCompilerVixen.ShaderCompiler