HyperionEngine compiles
its shaders through IDxcCompiler3: a -P preprocess call, then the compile
with -HV 2021 -O3. The game is
Glide.
Swapping DXC's library for zdxc's is the only change.
Compiling the cook's 8,770 recorded compile calls, 24 threads
DXC358 shaders/s
zdxc drop-in7,830 shaders/s21.9×
zdxc --job3,373 shaders/s9.4×
Windows, DXIL. Ryzen 9 7900 (24 threads). Through each compiler's dxcompiler.dll in one process, and as one zdxc --job batch, which also reads every source and writes every object (median of 3). DXC 1.8.2505 against zdxc ddefd45. Higher is better
The engine's BlobStorageCookCommandlet cooks Glide from an empty shader
cache, three times with each compiler, interleaved. A shim library in front
of the real one times every Compile call and records it; the recording is
then replayed through each compiler in one process, on one thread and on 24.
UE 5.8.4 editor, 11,156 startup shaders, DXIL with work graphs
Unreal Engine 5.8.4, built from source, opens the StarterContent sample's
StarterMap with an empty shader cache. Its ShaderCompileWorker processes
load DXC's dxcompiler.dll from
Engine/Binaries/ThirdParty/ShaderConductor/Win64. Replacing that one file
with zdxc's drop in libraries is the only change:
D3D12, Shader Model 6.6, work graphs on.
Compiling the startup's 11,488 recorded compile calls, 24 threads
DXC37 shaders/s
zdxc drop-in149 shaders/s4.0×
zdxc --job397 shaders/s10.6×
Windows, DXIL. Ryzen 9 7900 (24 threads). Through each compiler's dxcompiler.dll on 24 processes, as the editor's workers call it, and as one zdxc --job batch on 24 threads (median of 3). Unreal's DXC 1.8 against zdxc eeb5a3f. Higher is better
Valid output. Every object zdxc writes passes Unreal's own DXIL
validator (dxil.dll 1.8).
Same picture. The editor opens the map and renders it with no D3D12
debug-layer errors with either compiler.
Code size. zdxc's DXIL is 1.09 times DXC's over the whole recording.
The driver turns it into pipelines a little more slowly. It's likely DXC produces
dxil which is more amenable to isa lowering on end user machines.
No matches
type to search · / or ⌘K open · Tab filter · Enter jump · Esc close · ↑↓ move