Shader compilation has become an irritating side effect of increasingly complex PC graphics. Modern games contain large numbers of shaders that tell GPUs how to process materials, lighting, shadows, reflections, textures, and other rendering operations. The game must prepare those programs for the player’s hardware before the GPU can execute them.

Developers have several ways to handle that work. A game can compile shaders during its first launch, cache them for subsequent sessions, or compile some shaders just in time as the player encounters new rendering workloads. First-launch compilation creates a wait before playing. Runtime compilation can create frame-time spikes and visible stutter.
Microsoft’s Advanced Shader Delivery (ASD) changes where much of that work occurs. Instead of treating every player’s PC as a shader compilation machine, Microsoft and GPU vendors can prepare hardware-specific shaders ahead of time and deliver them alongside the game. The player’s system receives the appropriate precompiled shaders rather than starting from source every time.
ASD does more than download a conventional shader cache. DirectX collects pipeline state objects (PSOs) and state objects, including ray-tracing state, into a standardized State Object Database (SODB). Microsoft defines the SODB as a SQLite3 database containing shaders plus the information needed to group them into PSOs and state objects. An IHV-supplied offline compiler combines that information with the target GPU requirements and creates a Precompiled Shader Database (PSDB). Windows registers the PSDB as another source for the driver’s shader cache.




