为什么PC游戏在编译着色器时会卡顿——以及高级着色器分发如何改变这一现状

PC 着色器卡顿之所以存在,是因为游戏通常无法使用某个着色器,直到该着色器已针对运行游戏的精确 GPU 和驱动环境完成编译。Microsoft 高级着色器交付改变了编译发生的位置:无需等待玩家的 PC,工作可以提前完成,编译后的着色器数据可以随游戏一起到达。
PC 游戏为何一开始就要编译着色器
着色器是一个小型 GPU 程序,用于渲染任务,例如光照、材质、阴影、后处理和其他图形工作。
游戏通常以中间形式提供着色器代码。在 GPU 能够高效执行之前,图形驱动会将该代码编译为特定硬件的形式。
在游戏主机上,目标硬件和驱动环境要可预测得多。在 Windows PC 上,游戏可能运行在许多 GPU 型号、驱动版本和系统配置上。
这种硬件矩阵正是 PC 着色器编译更难完全提前准备的原因。
着色器卡顿从何而来
如果游戏遇到尚未编译的着色器,驱动可能不得不在游戏运行时进行编译。
这项工作可能会中断正常的帧管线。即使平均 FPS 很高,结果也可能出现短暂卡顿。
一旦编译后的着色器被缓存,同样的卡顿可能不会再次发生,直到缓存失效或需要新的着色器组合。
正常的着色器编译路径
没有高级着色器交付
高级着色器交付改变了什么
高级着色器交付将昂贵的编译步骤移入分发管线。
游戏以标准化方式描述其可能需要的着色器状态对象。微软将这一集合称为状态对象数据库,即 SODB。
平台将该游戏数据与针对相关硬件和驱动环境的独立着色器编译器相结合,生成预编译着色器数据库,即 PSDB。
随后,PSDB 可以通过商店与游戏一同分发。
SODB → PSDB 流程
高级着色器交付的工作原理
为什么这在 PC 上比在主机上更难
主机与 PC 着色器准备对比
| 主机 | Windows PC | |
|---|---|---|
| 硬件目标 | ||
| 驱动环境 | ||
| 预编译 | ||
| 缓存稳定性 |
为什么驱动更新可能很重要
已编译的着色器并非完全独立于图形驱动。
驱动更新可能会更改编译器或使先前编译的缓存数据失效。
微软的高级着色器交付架构旨在检测该环境变化并刷新预编译的着色器数据,而不是让玩家手动重建所有内容。
这是否意味着着色器编译界面会消失?
其中许多可能会变得短得多或不再必要,但高级着色器交付并不保证所有与着色器相关的等待都会消失。
SODB 的质量很重要。如果游戏未能描述后续需要的着色器组合,这些缺失的情况可能仍需要在本地处理。
游戏更新也可能引入需要新的预编译数据的新着色器状态。
着色器可用性边界
什么决定了游戏能否避免本地编译?
| 由ASD覆盖 | 不在交付的数据库中 | |
|---|---|---|
| 着色器状态 | ||
| 硬件目标 | ||
| 游戏版本 | ||
| 分发 |
微软的90%和95%数字实际意味着什么
微软表示,在支持的场景中,高级着色器交付可以将与着色器相关的加载时间减少高达90%。
对于《极限竞速:地平线6》,微软报告了一个具体的内部示例:在搭载Radeon RX 7600的Ryzen 7 5800系统上,加载时间从近1.5分钟降至约4秒,微软称这大约节省了95%的时间。
这些数字不应被解释为对每款游戏、每个GPU或每个加载界面的普遍保证。
着色器卡顿诊断测试
如何判断卡顿是否真的是着色器编译
着色器卡顿与资产流式传输卡顿不同
这两个问题在进入新区域时都可能造成卡顿,因此很容易混淆。
着色器编译是关于创建可执行的GPU程序。资产流式传输是关于将纹理、几何体和其他内容移入可用内存。
高级着色器交付针对的是第一个问题。DirectStorage针对的是第二条管线。
为什么商店平台很重要
高级着色器交付不仅仅是Direct3D API的功能。
该系统依赖于一个分发服务,该服务知道哪个游戏版本、GPU环境和编译数据库是相互匹配的。
这就是为什么微软当前的实现与Xbox PC应用分发绑定,而不是个人玩家可以全局简单开启的功能。
为什么这不仅仅是另一个着色器缓存
普通的本地着色器缓存是在你自己的机器已经支付了编译成本之后才建立的。
高级着色器交付试图在成本到达你的机器之前,交付那个有用的已编译状态。
本地着色器缓存 vs 高级着色器交付
| 本地着色器缓存 | 高级着色器交付 | |
|---|---|---|
| 编译发生的时间 | ||
| 谁承担初始编译成本 | ||
| 首次运行行为 | ||
| JIT 着色器卡顿 |
开发者实际需要做什么
游戏仍然必须暴露足够的信息,以便平台构建有用的数据库。
微软当前的工作流程要求开发者收集或以编程方式生成 SODB,通过在本地编译 PSDB 进行测试,并通过商店管道提交 SODB。
Agility SDK 1.619 还引入了应用程序标识和统计 API,以便开发者能够一致地识别游戏,并衡量 PSDB 的使用效果。
目前哪些硬件可用?
微软 2026 年 6 月的更新列出了 Windows 11 版本 24H2 或更高版本、所需的 Xbox Gaming Services 版本、基于 RDNA 1 到 RDNA 4 的 AMD Radeon 硬件,以及 AMD Adrenalin 26.6.1 或更高版本,用于当前记录的 Xbox PC 应用路径。
微软还表示正在与英特尔和其他硬件供应商合作,支持将扩展到更多设备。
这意味着高级着色器交付应被视为一个不断扩展的平台功能,而不是当今每块 GPU 上通用的 Windows 能力。
为什么这比另一个 FPS 功能更重要
放大和帧生成在游戏已经运行后改善渲染管线的输出。
高级着色器交付解决的是另一个质量问题:在错误时刻准备 GPU 程序导致的帧时间尖峰。
这就是为什么即使平均 FPS 完全没有变化,收益也可能可见。
什么会改变这个答案?
最大的变动边界是生态系统支持。
微软仍在将高级着色器交付扩展到 GPU、商店工作流程和游戏引擎集成中。因此,硬件要求和支持的发布路径可能会迅速变化。
未来在主要 PC 商店中广泛集成的实现,可能会使预编译着色器交付对玩家来说比今天透明得多。
局限性
本文介绍截至 2026 年 9 月微软已记录的高级着色器交付架构以及当前 Windows/Xbox PC 应用支持情况。
微软报告的加载时间节省数据来自特定受支持场景下的厂商测量结果。不应将其视为通用的性能保证。
结论
高级着色器交付用一个平台级方案解决了一个简单的问题。
PC 游戏需要针对特定 GPU 编译的着色器。在玩家机器上构建这些着色器可能导致首次启动时间过长和即时卡顿。ASD 捕获游戏所需的内容,为目标环境提前编译,并通过商店平台交付结果。
着色器仍然存在。编译仍然会发生。重要的变化是它发生在玩家需要之前。
常见问题
通俗易懂的高级着色器交付
什么是高级着色器交付?
什么是 SODB?
什么是 PSDB?
ASD 能消除所有着色器卡顿吗?
ASD 与本地着色器缓存相同吗?
高级着色器交付能提高 FPS 吗?
术语表
着色器交付关键术语
- 着色器
- 用于图形或计算工作(如光照、材质和后处理)的 GPU 程序。
- 着色器编译
- 将着色器代码转换为驱动程序和硬件可运行的 GPU 特定可执行形式。
- SODB
- 状态对象数据库,包含从游戏收集或为游戏生成的着色器状态信息。
- PSDB
- 预编译着色器数据库,包含为目标环境提前编译的着色器数据。
- JIT 编译
- 在启动或游戏过程中首次需要着色器时执行的即时编译。
- 着色器可用性边界
- Figure Rocks 模型,描述着色器何时可以从交付的预编译数据中提供,以及何时仍需要本地编译。
- 着色器卡顿诊断测试
- Figure Rocks 工作流程,用于将着色器编译引起的卡顿与其他帧时间尖峰原因区分开来。
主要来源
Microsoft Learn — 高级着色器交付官方 Windows 文档,涵盖 SODB 到 PSDB 的工作流程、优势及当前平台模型。
Microsoft DirectX — 引入高级着色器交付官方架构说明,涵盖本地着色器编译、SODB、PSDB 和商店分发。
Microsoft DirectX — GDC 2026 上的高级着色器交付2026 年官方开发者更新,涵盖 SODB 集成、应用程序标识、统计信息和 Xbox 合作伙伴中心工作流程。
Microsoft DirectX — 高级着色器交付扩展至 AMD2026 年官方可用性更新,涵盖 Windows 11、AMD RDNA 支持、Xbox PC 应用分发和《极限竞速:地平线 6》测量数据。
Related Articles
着色器缓存基础:无需虚假调整,减少首次运行卡顿
许多首次运行时的卡顿源于着色器编译。了解什么是着色器缓存,如何识别着色器卡顿,以及哪些设置能真正改善问题而非安慰剂效应。
游戏路由器设置清单:真正重要的配置项
大多数路由器调整并无助益。真正有效的设置包括:负载下的队列管理、稳定的Wi-Fi表现,以及避免增加延迟或不稳定性的功能。

Windows Auto SR 不是 DLSS:NPU 如何在无需游戏集成的情况下实现超分辨率
Windows Auto SR 可以在没有 DLSS、FSR 或 XeSS 集成的情况下对支持的游戏进行超分辨率处理。Windows 不是在游戏内于 GPU 上运行重建模型,而是使用 NPU 从较低分辨率的渲染中重建出更高分辨率的图像。
超频调校:无重影降噪的纯净之道
过驱动可以提升清晰度或产生难看的晕影。采用这个简单方法,选择干净的中等设置,以减少模糊而不产生重影伪影。
路由器检查清单 v2:防止延迟尖峰的12项设置
大多数延迟峰值源于负载和不稳定性,而非“高延迟”。在购买新设备前,请使用这份路由器检查清单,以确保在高负载下延迟稳定。
CPU卡顿 vs GPU卡顿 vs 着色器卡顿:如何辨别您遇到的是哪一种
并非所有口吃都相同。在调整设置前,先了解三种常见的口吃类型、它们的感受特征,以及最快速的诊断方法。

AMD FSR Redstone 不仅仅是 FSR 4:超分辨率、帧生成、光线再生与辐射缓存详解
AMD 的 FSR 命名之所以改变,是因为 FSR 不再是一项单一功能。Redstone 现在是一套神经渲染套件,包含用于超分辨率、帧生成、光线追踪重建和学习型全局光照的独立技术。

PUBG Ally展示了为什么AI队友需要两个大脑:快速反射和慢速推理
语言模型可以理解战术和玩家意图,但不应该直接控制每一个动作和战斗反应。PUBG Ally展示了一种更实用的架构:用快速的行为树控制反射动作,并结合一个小型语言模型进行规划、协调和自然对话。

降低了图形设置但帧率没有提升?你很可能调错了瓶颈。
你降低了阴影、特效和分辨率,但帧率几乎没有变化。本指南解释了为什么图形设置只有在减轻真正限制帧率的工作负载时才有帮助——以及如何识别 CPU、GPU、内存、流式加载和帧率上限瓶颈。
着色器缓存真相:它能解决什么,不能解决什么,以及为何卡顿会重现
着色器缓存可以减少重复编译导致的卡顿,但它无法解决CPU峰值或流式传输卡顿问题。了解其实际作用及正确测试方法。

为什么120 FPS仍然感觉糟糕:帧时间、1%低帧与卡顿解析
一款游戏可能报告120、144甚至200 FPS,但感觉仍然卡顿。本指南解释了为什么平均FPS可能掩盖糟糕的帧交付,帧时间和1%低帧如何暴露卡顿,以及如何诊断是CPU、GPU还是管道的其他部分导致了问题。
HDR与SDR决策矩阵:何时HDR更优,何时SDR胜出
HDR并非总是更优选择。根据可读性、稳定性及显示器实际表现,使用这个简单的决策矩阵来为每款游戏选择HDR或SDR模式。