400-6009-602

在 Mesa 26.1 的更新日志中,一组看似并不张扬的补丁悄然合并:
Intel 开源图形驱动工程师 Francisco Jerez 提交的 18 个修复补丁。
它们的初衷极其朴素——
修复 Intel Alchemist 独显 与 Meteor Lake 核显在 Linux 下的画面损坏问题。
然而在真实测试中,这组补丁却在特定图形负载下,触发了最高约 260% 的性能提升。
这并非“编译器奇迹”,也不是“测试误差”,而是一场长期被掩盖的驱动级结构性瓶颈,被意外解除后的自然释放。
最高性能增幅:约 260%
测试架构:Intel Gfx12.5
测试方式:trace-based workload
测试游戏:《NBA 2K23》
Jerez 在提交说明中明确指出,性能跃迁主要集中在以下场景:
频繁从非 WT(Write-Through)深度表面采样
深度缓冲启用 MSAA(多重采样抗锯齿)
对深度信息反复读取,而非一次性写入
这并不是“通用加速”,而是一次对深度采样路径的精准解锁。
在 Intel GPU 架构中:
HiZ(Hierarchical Z)
是深度测试的层级索引结构,用于快速裁剪不可见像素
CCS(Color Control Surface)
是压缩元数据,决定深度/颜色表面如何以压缩态存储与解码
它们的存在,目标只有一个:
用少量元数据,换取巨量显存带宽的节省。
在此前的 Mesa 实现中,只要满足一个条件:
GPU 对深度缓冲区进行采样
驱动就会选择最保守、也是代价最高的路径——
Full Resolve(完整解析整个深度表面)
其后果是:
HiZ 层级被整体失效
CCS 压缩状态被清空
深度缓冲退化为“未压缩裸表面”
即便 shader 只读取屏幕的一小块区域,也必须为整张深度图付出解析成本。
从原理上看:
GPU 只需解析当前 shader 实际访问的深度区域
其余区域可继续保持压缩态与 HiZ 结构
但现实中,驱动必须同时满足三项极难兼顾的条件:
精确判定访问区域
保证深度采样一致性
避免引入渲染错误或同步问题
因此,多数驱动选择了“宁可慢,也别错”的保守策略。
Jerez 的补丁在 Gfx12.5 架构能力范围内:
引入局部解析(Partial Resolve)策略
仅解析当前 draw call 实际涉及的深度区域
同时保持 HiZ 与 CCS 继续有效
避免一次采样就让整张深度缓冲“退役”
这不是算法创新,而是状态管理精度的跃迁。
这是一个典型的“旧机制最糟糕场景”:
深度采样次数极高
MSAA 带来多倍深度数据
非 WT 表面导致缓存无法直通
在旧驱动下:
每一帧 → 多次 Full Resolve
每一次 Resolve → 大规模显存访问
GPU 算力被迫等待数据
而在 Partial Resolve 生效后:
解析范围骤减
显存带宽占用断崖式下降
GPU 终于将时间花在“计算”而非“搬数据”上
260% 的提升,并非算得更快,而是终于不用做无用功。
答案是:是的,而且被低估的并非一点点。
这次事件清晰表明:
Intel Gfx12.x 架构并不缺乏压缩与缓存能力
性能瓶颈长期存在于 驱动层的保守策略
Mesa 在深度、压缩、解析路径上仍有系统性潜力可挖
硬件潜能,一直在那里,只是此前没人敢把“手术刀”伸得这么细。
原因并不浪漫,却极其现实:
闭源驱动
改动牵一发而动全身
正确性风险高于一切
开源 Mesa
状态路径可被反复审计
可在真实 workload 中快速回归测试
工程师更愿意做“精细而激进”的修复
这正是开源驱动最宝贵的地方:
它允许工程师对“看不见的细节”动刀。
必须保持理性判断:
当前仅验证 单一游戏、单一负载
260% 是极端上限,而非平均水平
不同游戏、不同引擎的收益存在明显场景依赖
但可以确认的是:
Full Resolve 并非必然选择
Partial Resolve 在 Intel GPU 上是可行路线
Mesa 驱动仍处在“可持续挖潜”的阶段
它揭示了一条被反复忽视的规律:
在算力过剩、带宽稀缺的时代,
真正的性能突破,往往来自“不该发生的内存访问被消灭”。
没有新硬件、没有新 API,
只有对一次深度解析、一次状态失效的重新审视。
而这,恰恰是现代 GPU 驱动最难、也最值钱的功夫。