Vixen
02b45cc4
csharp
public sealed class ShaderCompilerServer

Compiles shader variants for devices that have no compiler.

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

Remarks

The other half of RemoteEffectSource, and the reason doc 06 says this is worth building early. A phone or a console has no Raven and no shader sources, so without it every change to a .rvn means a content build and a redeploy — a loop long enough that people stop making the change.

The disk cache sits on this side too, and that is what makes it fast. Five devices asking for one variant is one compilation, and a restart of this process costs nothing: the entries are still there. The device caches as well, so the second run of the game does not ask at all — the two caches are for different things, one saving the compile and the other saving the round trip.

A development tool. No authentication, no transport security. Anything that reaches the port gets whatever this can compile, so it belongs on a desk behind a firewall, bound to a specific interface if the desk is not a private one.

Fields and properties (4)

  • public TextWriter Log

    What the server writes about what it is doing.

  • public int Port

    Which port it ended up on. Meaningful after Start.

  • public int Served

    How many requests have been answered with a variant.

  • public int Missed

    How many were answered with nothing.

Methods (3)

  • public ShaderCompilerServer(IPAddress address, int port, Func<string, IEffectSource?> open)

    Creates a server.

  • public void Start()

    Starts listening.

  • public void Dispose()

    Stops, and waits for the accept loop to notice.

Used by (1)

  • ShaderCompilerServiceTestsVixen.ShaderCompilerService.Tests