Vixen
02b45cc4
csharp
public static class ShaderBuildRunner

Compiles a project's shader variants into the bundle a shipping build loads.

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

Remarks

The third cache tier, made a product of vixen build rather than a library call. A shipping build's only effect source is this file; if a variant is not in it, the run reports a miss and draws nothing, because the code that could have compiled one was never linked in.

Driven by a manifest, and deliberately not by "compile everything". Enumerating every shader in a project sounds more complete and is not: a pass with compose slots does not compile at all without something in them (RVN2073), so "every variant of ForwardPlus" is not a well-formed question — every variant of ForwardPlus with these features is, and which features a project has is in its materials rather than in its shaders. The manifest is where that lands, and Requests is what fills it in: play the game against a compiler, write the list, build.

Silence when there is no manifest, with a line saying how to make one. A project that has not got to this step yet still builds and still runs — against a compiler in development — and telling it that its shaders failed would be wrong.

Fields and properties (3)

  • public const string BundleFileName

    What the bundle is called, beside the catalog.

  • public const string ManifestFileName

    Where the manifest lives, under ProjectSettings/.

  • public const string DefaultBackend

    The backend a target wants unless something says otherwise.

Methods (1)

  • public static bool Run(Project project, string backend, string outputDirectory, DiagnosticWriter output)

    Compiles the manifest and writes the bundle.

Used by (2)

  • VixenCommandVixen.Cli
  • VixenCommandTestsVixen.Cli.Tests