Vixen
02b45cc4
csharp
public static class LibraryBuilder

Builds a CompiledLibrary out of a bound and lowered compilation.

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

Remarks

What a library exports is what its own compilation declared: every type, and the body of every member whose body can stand on its own. Types and functions linked in from another library are not re-exported — a call into one travels as the key that library published, and the consumer resolves it against its own references, which is what keeps one struct from having two identities in a module that references both libraries.

The checks run here rather than in a consumer, because here is where they can be fixed. A body that reads a shader binding cannot be linked into another shader, so it is refused (RVN5001) instead of exported to fail somewhere with no source in sight; a body that touches a stream is refused for the neighbouring but different reason that a stream's location belongs to the consuming shader (RVN5007), and one that touches groupshared storage because the workgroup is the consuming dispatch's (RVN5008). And a stage entry point is not something a library supplies, which is said (RVN5002) rather than silently dropped.

Methods (1)

Used by (8)

  • CompileDriverVixen.Raven.Cli
  • CompiledLibraryTestsVixen.Raven.Tests
  • GroupSharedTestsVixen.Raven.Tests
  • InOutTestsVixen.Raven.Tests
  • LibraryTreeTestsVixen.Raven.Tests
  • SizedArrayTestsVixen.Raven.Tests
  • StreamTestsVixen.Raven.Tests
  • WritableResourceTestsVixen.Raven.Tests