firefox硬件加速 linux,在 Linux 上开启 Firefox 试验性 OMTC (从而恢复硬件加速)

Update: Firefox 40 起已经默认启用 Linux 下的 OMTC 支持(见这篇开发博客),无需再按照本文说明强制手动开启。

UPDATE: 发现开启 layers.offmainthreadcomposition.async-animations 会导致右键菜单无法响应鼠标位置,必须使用键盘控制。推荐关闭。 (Fixed)

最近在玩儿一些 HTML5 游戏的时候发现我的 Firefox 图形渲染似乎比之前卡了很多。明明很早之前就强制开启了硬件加速却没觉得有效果。在 about:support 中一看,“GPU 图像加速窗口”竟然又变成了 0/1 Basic ,虽然下面的“WebGL 渲染器”正确识别到了我的 Intel 集显。根据文档,这说明部分启用了硬件加速,但由于不支持硬件合成器,所以事实上是把内容交给显卡计算后再读取出来显示。

搜索一番,看到这篇博客:No more main-thread OpenGL in Firefox (important note for Linux users who use OpenGL)。才知道原来从去年开始, Firefox 正式将 OpenGL 合成从主线程移出来了。虽然 Off Main Thread Compositing (OMTC)已经实验了很长时间(搜索一下就可以看到不少 2012 年的记录),但在 Linux 上还是存在问题,所以就默认关闭,导致 Linux 无法使用硬件加速合成。

解决方法很简单——首先需要按照旧办法强制开启硬件加速绕过黑名单,然后再开启试验性的 OMTC 支持:设置 MOZ_USE_OMTC=1 环境变量(可以修改 firefox.desktop 文件,将 Exec 设置为 env MOZ_USE_OMTC=1 /usr/lib/firefox/firefox %u ,注销重新登录以生效),并且在 about:config 中打开以下几个选项:

layers.acceleration.force-enabled (就是上篇文章中提到的关键设置)

layers.offmainthreadcomposition.enabled

layers.offmainthreadcomposition.testing.enabled

layers.offmainthreadcomposition.async-animations

layers.async-video.enabled (这个应该是默认打开的)

当然, layers.acceleration.disabled 应该是关闭的(也就是在 GUI 设置界面中勾选上自动使用硬件加速)。最后,通过禁用 XRender 还可以进一步获取一点性能提升(关闭 gfx.xrender.enabled 选项)。

完成后在 about:support 中应该看到这样的信息:“GPU 加速窗口: 1/1 OpenGL (OMTC)”。

提示:我在开启 OMTC 时遇到过一次段错误浏览器崩溃, bug tracker 中也有包括渲染错误、崩溃在内的不少问题,请谨慎尝试并尽量使用最新内核和驱动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值