让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

安全警告

使用上述方法将带来一定安全隐患,请务必确认自己的需求、注意计算机系统安全!