Each shader resource plan is compiled once to a DynamicMethod that evaluates its resource table graph with plan-local value slots instead of the interpreter's hashed cache. ASTRO's PLAYROOM goes from about 20 to 60 fps. Compilation runs on a low-priority "SRT compiler" thread; until a plan is ready, the interpreter evaluates it, so a new shader no longer stalls the render thread while its plan is JIT-compiled. A plan whose compilation fails stays on the interpreter. SHARPEMU_SRT_NATIVE=0 turns the compiled path off; it is also off when the runtime does not support dynamic code. |
||
|---|---|---|
| .. | ||
| SharpEmu.Libs.Tests | ||
| SharpEmu.ShaderCompiler.Metal.Tests | ||
| SharpEmu.ShaderCompiler.Tests | ||
| SharpEmu.SourceGenerators.Tests | ||