2026-10-28性能优化作者:沈亦然阅读约 6 分钟

小鸡模拟器图形后端切换 Vulkan:帧时间下降 38%

小鸡模拟器 Vulkan 图形后端封面
命令缓冲分三个线程录制,绘制调用不再逐次校验状态

2026 年 10 月 28 日,小鸡模拟器推送图形后端更新,安卓端渲染从 OpenGL ES 3.1 迁到 Vulkan 1.1。同机型同游戏对比,帧时间 P99 从 26.4 毫秒降到 16.3 毫秒,卡顿帧占比从 1.8% 降到 0.4%,中端机的改善比旗舰机更明显。

瓶颈此前不在内核,而在驱动。OpenGL ES 的每次绘制调用都要经过驱动的状态校验,模拟器的绘制批次又碎,一帧常有上千次调用,中端机的 CPU 时间有近三成耗在这上面。Vulkan 允许把命令预先录进命令缓冲、分多线程录制,驱动只在提交时检查一次,状态没变就不重复校验。

Vulkan 与 OpenGL ES 的帧时间对比测试
12 款机型的帧时间 P99 记录,中位数下降 38%

瓶颈不在内核,在驱动的状态校验

把一帧拆开看会更清楚。PSP 与 NDS 作品的一帧通常包含 900 到 1400 次绘制调用,每次调用都要校验纹理绑定、混合模式与深度状态,即使状态没变也要走一遍。Vulkan 把这些状态打包成管线对象提前编译,绘制时只提交命令缓冲,录制分给三个线程,主线程只负责同步。改造后主线程每帧的驱动等待时间从 7.8 毫秒降到 1.9 毫秒。

图形组负责人沈亦然说:「换后端不是为了跑分,是为了把 CPU 从驱动里解放出来。帧时间下来,掉帧的尖刺才会消失,玩家感知到的不是平均帧率,是那几下卡顿。」团队为此重写了渲染层的资源生命周期,纹理与缓冲按帧编号回收,避免旧后端里常见的延迟释放。

实测:帧时间、卡顿与温度

灰度覆盖 12 款机型、6 款高频游戏,累计 1800 小时。数据:帧时间 P99 由 26.4 毫秒降到 16.3 毫秒,降幅 38%;卡顿帧占比 1.8% 降到 0.4%;平均帧率 57.2 帧升到 59.1 帧;GPU 占用从 44% 降到 41%;机身温度下降 0.8 摄氏度;整机功耗上升 0.2 瓦,主要来自管线编译时的短时峰值。首次进入游戏多花 0.6 秒编译管线,第二次起从本地缓存读取。

三款使用早期 Mali 驱动的机型表现反而变差,卡顿帧升到 2.4%,原因是驱动对管线对象的处理有缺陷。这三款机型被加入回退名单,默认继续走 OpenGL ES,帧率低 1.2 帧,但帧时间更稳。中端机的收益集中在尖刺减少,旗舰机本来就不卡,感受反而不明显。

回退名单、手动开关与续航

客户端在启动时读取 GPU 型号与驱动版本,命中回退名单就静默使用 OpenGL ES,玩家不会看到任何提示。设置页的图形一栏保留了手动切换,想对比两种后端的玩家可以自己选,切换后需要重启内核,客户端会提示当前窗口的存档已自动保存。回退名单目前收录 42 款机型组合,每次驱动更新后重新评估。

测试组负责人江映雪补充:「我们不追求让所有机器都开 Vulkan,稳定比参数重要。宁可少 1 帧,也不要让玩家在关键时候卡一下。」续航上没有明显变化,一小时连续游玩两种后端的耗电差异在 1 个百分点以内,长时间挂机时 Vulkan 的后台功耗略低,因为提交线程可以更早休眠。

Windows 与 Mac 为什么没换

Windows 端继续使用 Direct3D 11,Mac 端使用 Metal,两者都已经能直接把命令提交给驱动,没有 OpenGL ES 那层逐次校验的历史包袱。Windows 上的 D3D12 与 Vulkan 收益接近,但改造面更大,需要重写资源绑定与屏障管理,短期投入产出不划算,团队把人力优先放在移动端。

移动端换后端还有一个现实原因:安卓的 OpenGL ES 驱动质量参差不齐,厂商定制多、更新慢,同一个接口在不同机器上的行为差异很大。Vulkan 的校验层更严格,问题更容易在测试阶段暴露。图形组表示会把 Windows 端的帧时间数据同步到资讯中心,供玩家对照两种后端的差异。驱动版本过低时客户端不会强行切换后端,而是在设置页显示当前版本与建议版本,由玩家决定是否继续。

换后端之后,尖刺少了

Vulkan 后端随热更新下发,旧机型自动回退 OpenGL,设置页可手动切换。

前往下载中心

玩家评论(6)

冯
冯书言

中端机更新完确实顺了,之前切场景会顿一下,现在基本没有。

卢
卢诗涵

设置里能手动切回去这点好,我对比了一下还是 Vulkan 稳。

蔡
蔡文杰

首次进游戏多等半秒可以接受,总比玩着卡强。

贾
贾晓萌

我这台老机器被回退了,帧率没变但感觉更稳。

范
范雨萱

想知道 Windows 端什么时候也能用上类似的东西。

钟
钟清和

玩了一晚上没遇到花屏,之前 OpenGL 偶尔会有。

上一篇小鸡模拟器金手指管理器:3800 条内置码库与冲突检测 下一篇小鸡模拟器家长监护上线:时长、时段与消费三组边界
↑