> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Advanced Shader Delivery

> Advanced Shader Delivery precompiles Direct3D 12 shaders and delivers them at download time, reducing load times and in-game shader compilation stutter.

Advanced Shader Delivery (ASD) is a Windows 11 Direct3D 12 technology that helps games load faster.

Gaming on Windows has evolved in many directions, including high-level shaders. As graphics continue to improve, so does the number of shaders a game compiles — and how those shaders are loaded during startup and gameplay needs to evolve with them. Compiling shaders on the player's device at launch, or "just-in-time" during gameplay, leads to longer load times, in-game shader compilation stutter, and higher power consumption.

ASD moves that work off the device. It captures a game's shader states in a standardized format called a State Object Database (SODB), then precompiles those shaders and delivers them to players at download time, greatly reducing in-game shader compile times. ASD is fully available to all developers building games on PC with Direct3D 12.

## Learn more

For documentation on how to adopt Advanced Shader Delivery for your title, see [Prepare your game for Advanced Shader Delivery](https://aka.ms/xgd-asd-selfservice).

## Related topics

<dl>
  <dt>
    [Direct3D 12 Programming Guide](/build/gdk-and-engines/guides/directx-12-programming-guide)
  </dt>

  <dt>
    [Advanced Shader Delivery: what's new at GDC 2026](https://devblogs.microsoft.com/directx/advanced-shader-delivery-whats-new-at-gdc-2026/)
  </dt>
</dl>


## Related topics

- [Direct3D 12 programming guide](/build/gdk-and-engines/guides/directx-12-programming-guide.md)
- [PFPushNotificationsAdvancedPushPlatformMsg](/services/playfab/api-references/c/pfpushnotificationstypes/structs/pfpushnotificationsadvancedpushplatformmsg.md)
- [Push Notification for Android](/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notifications-for-android.md)
- [PlayFabMultiplayerManager.Get().SendDataMessage](/services/playfab/multiplayer/networking/unity-party-api-reference/classes/playfabmultiplayermanager/methods/playfabunitysenddatamessage.md)
- [PFPushNotificationsSendPushNotificationRequest](/services/playfab/api-references/c/pfpushnotificationstypes/structs/pfpushnotificationssendpushnotificationrequest.md)
