Cemu 图形后端选择 — Vulkan vs OpenGL 性能与稳定性对比
为什么两个后端
Wii U 原生使用 OpenGL 4.x 接口。Cemu 最初就是在 x86 PC 上模拟 Wii U 的 OpenGL 调用。但 OpenGL 在桌面 PC 上的实现已经基本停滞——各大厂商把精力转向了 Vulkan。
2021 年 Cemu 1.22.7 首次引入 Vulkan 后端,之后 Vulkan 支持迅速成熟。现在两个后端并存:
- OpenGL:传统方案,兼容性好,但性能上限低
- Vulkan:新方案,性能高、特性多,但对驱动要求更高
对比表
| 对比项 | Vulkan | OpenGL |
|---|---|---|
| 首次引入 | Cemu 1.22.7(2021) | Cemu 1.0.0 起一直有 |
| 性能 | 更高,着色器编译快 | 略低 |
| 异步着色器编译 | ✅ 可用 | ❌ 没有 |
| VSync | ✅ 实验性 "Match emulated display" | Double buffering |
| 着色器卡顿 | 大幅减少 | 首次必卡 |
| 显存占用 | 更高 | 较低 |
| macOS | ❌ 不支持 | ✅ 可用(通过 MoltenGL) |
| Linux | ✅ 支持 | ✅ 支持 |
| 驱动要求 | Vulkan 1.2 | OpenGL 4.5+ |
直接结论
能跑 Vulkan 就跑 Vulkan
99% 的现代 Windows 显卡(NVIDIA GTX 10 系列以后、AMD RX 5000 以后、Intel Arc)都支持 Vulkan 1.2。
Vulkan 的优势是三个:
- 异步着色器编译——这是减少首次进游戏卡顿的核心功能,只有 Vulkan 后端能启用
- VSync 匹配——利用游戏内置的帧率节奏,减少撕裂和延迟
- 着色器编译速度——Vulkan pipeline 编译比 OpenGL shader 快,切换场景更丝滑
什么时候用 OpenGL
只有三种情况:
- macOS 用户——Cemu 在 macOS 上只能走 OpenGL(通过 MoltenGL 转译到 Metal)
- 极老的显卡——不支持 Vulkan,只支持 OpenGL 4.x
- 显存紧张——Vulkan 比 OpenGL 多占几百 MB 显存。如果只有 2GB 显存,OpenGL 反而更稳
怎么切换后端
打开 Cemu:
- 顶部 → Options → General settings
- 左边选 Graphics
- Graphics API 下拉菜单,选 Vulkan 或 OpenGL
- 如果有多个显卡,Graphics Device 下拉菜单选性能更强的那个(笔记本通常是独显)
- 关掉窗口就行,设置自动保存
切换后第一次启动游戏可能需要重新编译着色器——这是正常现象。
常见坑
切了 Vulkan 游戏启动崩溃
大概率是显卡驱动太旧。更新到最新稳定版驱动再试。如果还是崩溃,改回 OpenGL。
OpenGL 上着色器卡顿特别严重
正常现象——OpenGL 没有异步编译。第一次进新场景、第一次用新渲染效果时会卡几秒到几十秒,之后就好了(着色器缓存生成完了)。
Vulkan 上 shader cache 导入有 pipeline cache 也需要导入
对。OpenGL 只需要 shader cache 文件,Vulkan 需要两个:shader cache + pipeline cache。pipeline cache 是 Vulkan 特有的,按游戏区域锁定(同一游戏不同区域的 pipeline cache 不通用)。
进阶开关
在 Options → General settings → Graphics 页,切换 Vulkan 后还有几个额外开关:
- Async shader compiler(异步着色器编译):强烈建议开启。着色器编译在后台线程做,游戏在等待新着色器时会短暂跳过渲染而不是卡死
- Accurate barriers (Vulkan):Debug 菜单里,建议关闭。开启会更精确但性能明显下降
总结
| 场景 | 推荐 |
|---|---|
| Windows + 现代独立显卡 | Vulkan,开异步编译 |
| Windows + 集成显卡 | Vulkan 优先,不行改 OpenGL |
| macOS | OpenGL(唯一选项) |
| 显存 < 2GB | OpenGL |