# WDDM、HAGS 与 MPO：为什么卡顿不是帧率问题

> Windows 显示栈如何合成画面、硬件加速 GPU 调度与多平面叠加改变了什么，以及怎么验证差别。

**测试环境**

- 版本号: 26300.9457
- 版本: Pro (26H2)
- 架构: x64
- 证据: E1
- 核验日期: 2026-10-29

## 一句话结论

三层决定你看到什么，只有一层是游戏：

1. **WDDM**——Windows 显示驱动模型：OS 如何调度 GPU 工作与管理显存。
2. **合成**——DWM 把所有窗口合成为最终画面。
3. **呈现**——翻转、叠加还是拷贝：这一帧怎么送到面板。

"卡顿"通常意味着**帧节奏坏了**，而不是平均帧率下降。平均 120 帧但每隔几秒来一帧 80ms，体感比稳定 90 帧更差。

## 三个常被混淆的概念

| 概念 | 是什么 | 改变了什么 |
|---|---|---|
| **WDDM 3.x** | 驱动模型版本 | 调度、显存管理、功能可用性 |
| **HAGS**（硬件加速 GPU 调度） | 让 GPU 自己管理命令队列 | 降低 CPU 开销，改变节奏行为 |
| **MPO**（多平面叠加） | 显示硬件直接合成图层，而不是 DWM 拷贝 | 省电、降延迟，但也是闪烁/卡顿 bug 来源 |

HAGS 与 MPO 是**栈的特性**，不是"开了就更好"的开关。两者都出现过特定驱动下的 bug，关掉就恢复正常。

## MPO 在哪里咬人

有 MPO 时，显示控制器可以把视频或游戏窗口直接叠加，而不必让 DWM 把一切合成到一个表面。这省电、降延迟——同时意味着驱动的叠加路径进入了关键路径。

被归因于 MPO 的现象：

- 视频开始播放时闪一下或短暂黑帧；
- 只在浏览器窗口播放视频时卡；
- 光标或覆盖层撕裂；
- 多显示器与单显示器表现不同。

标准诊断方法是在驱动注册表里关闭 MPO（显示适配器类下的厂商键），看现象是否消失。这是**诊断**，不是永久修复——你会失去省电收益。

## 看栈在做什么

```powershell
Get-CimInstance Win32_VideoController | Select-Object Name,DriverVersion,DriverDate,VideoModeDescription
dxdiag /t $env:TEMP\dxdiag.txt

Get-Counter '\GPU Engine(*)\Utilization Percentage' -MaxSamples 2
```

`dxdiag` 会报告驱动模型与各适配器的功能级别。计数器能看出是否有某个进程占满了拷贝引擎——那是合成路径在做不该它做的事的典型信号。

## 诚实地测量帧节奏

要谈卡顿就要**帧时间**，不是平均值：

- 帧间隔（present interval），不是 fps；
- **99 分位**或最差帧时间，不是均值；
- 同一场景、同一设置、同一驱动，多跑几次。

Windows 自带工具在这里很弱。显卡厂商的覆盖层与帧时间捕获工具能给逐帧数据；只显示平均值的工具分不清流畅和卡顿。

> **警告: 不要随手跨驱动版本对比**
>
> 一次驱动更新同时改变频率、功耗行为和合成路径。不固定电源计划、温度和场景就做"前后对比"，结论没有意义。

## 什么时候该动设置

| 现象 | 先试 |
|---|---|
| 只在窗口内播放视频时卡 | 关 MPO 验证，再查驱动更新 |
| 快显卡但 CPU 占用高 | 开 HAGS（驱动支持的话） |
| 切窗口时黑闪 | MPO/驱动，不是 Windows 设置 |
| 只有一个显示器卡 | 线材/链路带宽，再看 MPO |
| 帧率一直低 | GPU 占用、温度、功耗墙——不是栈 |

一次只改一项，并记下来改了什么。栈里的变量足够多，同时改两项等于什么都没学到。

## 相关

- [AMD Radeon 驱动](https://winbook.fyi/zh/hardware/gpu/amd-drivers/)
- [驱动回滚](https://winbook.fyi/zh/hardware/gpu/driver-rollback/)
- [显示器选择与 VRR](https://winbook.fyi/zh/hardware/display/monitor-choice/)

## 实验室边界

E1。栈行为有微软文档依据。实验室是虚拟显示适配器，没有 MPO 或 HAGS 路径，未复现卡顿，也不发布帧时间数据。

## 来源

- [Microsoft Learn — 硬件翻转队列](https://learn.microsoft.com/zh-cn/windows-hardware/drivers/display/hardware-flip-queue)
- [Microsoft Learn — 多平面叠加支持](https://learn.microsoft.com/zh-cn/windows-hardware/drivers/display/multiplane-overlay-support)
- [Microsoft Learn — DXGI 1.6 改进](https://learn.microsoft.com/zh-cn/windows/win32/direct3ddxgi/dxgi-1-6-improvements)

---

来源页面: https://winbook.fyi/zh/hardware/gpu/wddm-hags-mpo/
