Firefox在X11和Wayland情况下均默认启用显卡加速。在大多数发行版环境下、在显卡支持时,可硬件解码开放标准的编码(如VP9、AV1等),或 标准版权已过期的商用标准的编码(如H.264等)。如果发行版自带或手动安装了支持有授权限制的编码(如H.265)的VA-API,Firefox也会尝试硬件解码这些编码。
Microsoft Edge与Chromium在X11下均默认启用显卡加速。而在Wayland下,显卡加速仍处于实验状态,需要手动启用。
下面以Fedora 37 + GNOME(Wayland + XWayland)+ Firefox + Microsoft Edge + Chromium为例,给出查看和启用显卡加速的办法。
检查是否已启用显卡加速
Firefox:
- 访问
about:support
- “图像” -> “窗口协议” -> 确认对应的表格内容是为“wayland”
- “图像” -> “HARDWARE_VIDEO_DECODING” -> 确认对应的表格中没有“unavailable”字样;
- 访问
Chromium/Edge:
- 访问
chrome://gpu
或edge://gpu
- “Driver Information” -> “XDG_SESSION_TYPE” -> 确认对应表格内容是“wayland”
- “Graphics Feature Status” -> 确认“Video Decode”为“Hardware accelerated”
- “GpuMemoryBuffers Status” -> 确认所有表格内容不全是“Software only”
- 访问
系统环境配置
Firefox及Chromium/Edge的显卡加速均依靠VA-API和VDPAU支持。
- 安装显卡驱动,闭源的官方驱动或是开源的社区驱动均可。
- 安装VA-API和VDPAU工具
1 | sudo dnf install -y libva libva-utils libvdpau vdpauinfo |
因为法律问题,Fedora等发行版中只提供编码受限的FFmpeg、Mesa VA-API、VDPAU支持包等,因此需要开启RPMFusion
1 | sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm |
- 安装FFmpeg
1 | sudo dnf install -y ffmpeg |
- 开源的驱动大概率是基于Mesa图形库开发的。如果你使用的是开源驱动,则需要安装Mesa的VA-API、VDPAU支持包
1 | sudo dnf install -y mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld |
- 闭源的驱动大概率内置对VA-API、VDPAU的支持,因此无需执行上述命令;有些闭源驱动需要单独安装自己的VA-API和VDPAU支持包,可参考闭源驱动的官方文档;
例如:
1 | sudo dnf install -y libva-intel-driver |
- 使用工具检查支持情况
1 | # 检查VA-API支持情况 |
强行开启Firefox硬件加速
- 访问
about:config
- 搜索
ffmpeg
,将结果中的media.ffmpeg.vaapi.enabled
改成true
- 重启Firefox
开启Chromium/Edge硬件加速
方法
注意:此方法不适用于无GTK4环境安装的Chromium/Edge浏览器,例如Flatpak。
- 到
/usr/share/applications
下找到chromium-browser.desktop
或microsoft-edge-{beta,dev}.desktop
- 直接修改或复制一个副本进行修改
- 修改
Name=
方便标识 - 修改
Exec=
,在原命令的最后面加入如下参数
- 修改
1 | # 为方便解释,此处每行一个参数 |
- 若在副本中修改,则将副本替换
/usr/share/applications
下的文件,或保存到~/.local/share/applications
- 注销当前用户,重新登录(使GNOME重新读取所有Desktop entry)
- 使用修改后的Desktop entry启动Chromium/Edge
输入法不能用,如何解决?
- 方法一:安装GNOME扩展Input Method Panel,即可正常使用输入法
- 方法二:可以使用Chrome扩展Google 输入工具,代替系统输入法