让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
安全警告
使用上述方法将带来一定安全隐患,请务必确认自己的需求、注意计算机系统安全!