让Linux的Firefox使用硬件加速
Last updated: 2022-09-17
动机¶
硬件加速不好吗, 硬件加速它省电啊!
坑¶
Firefox 对笔记本双显卡不太友好, 检测会出问题貌似在102版本之后修好了,会 自动选用合适的。
操作¶
按照下面的表格修改 about:config 里面的值
| 键 | 值 | 解释 |
|---|---|---|
| gfx.webrender.all | true | 让 WebRender 能在 PRIME 环境下能用核心显卡的硬件加速 |
| gfx.webrender.enabled | true | 开启 WebRender, VAAPI必须 |
| gfx.x11-egl.force-enabled | true | 若 FFver < 94, 强制在 X11 启用 EGL 接口渲染 |
| media.ffmpeg.vaapi.enabled | true | 开启 VAAPI |
| media.ffvpx.enabled | false | 禁用内置vp8/9解码器, 可能有优先级bug, 参考 ArchWiki:Firefox(版本102及以上不需要) |
| media.navigator.mediadatadecoder_vpx_enabled | true | WebRTC 硬件解码 |
| media.rdd-vpx.enabled | false | 把部分解码器线程挪出 RDD (沙盒), 避免找不到库, 这样不用完全关闭 RDD (版本102及以上不需要) |
我这样操作起来就开启了所有的硬件加速
如何判断浏览器正在使用 VAAPI 硬件解码
在命令行设置环境变量 MOZ_LOG="PlatformDecoderModule:5" 并启动 Firefox, 比如这样env MOZ_LOG="PlatformDecoderModule:5" firefox
然后打开一个测试视频, 看看日志里有关 VA-API 的输出
补充¶
之前有个操作刻意没有写。因为 Firefox 的一些问题,上面的参数仍不能开启旧版Firefox的
vaapi视频解码。如果有需要,需要完全关闭 RDD 沙箱。用下面的方法运行 Firefox:
env MOZ_DISABLE_RDD_SANDBOX=1 firefox
安全警告
使用上述方法将带来一定安全隐患,请务必确认自己的需求、注意计算机系统安全!