Wayland下开启Chromium或Edge浏览器的显卡加速

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”字样;

Firefox 处于Wayland环境下

Firefox 显卡加速开启状态

  • Chromium/Edge:

    • 访问chrome://gpuedge://gpu
    • “Driver Information” -> “XDG_SESSION_TYPE” -> 确认对应表格内容是“wayland”
    • “Graphics Feature Status” -> 确认“Video Decode”为“Hardware accelerated”
    • “GpuMemoryBuffers Status” -> 确认所有表格内容不全是“Software only”

Chromium 处于Wayland环境下

Chromium 显卡加速开启状态

系统环境配置

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
2
3
sudo dnf install -y ffmpeg
# 如果已经安装了ffpmeg-free
sudo dnf swap -y ffmpeg-free ffmpeg
  • 开源的驱动大概率是基于Mesa图形库开发的。如果你使用的是开源驱动,则需要安装Mesa的VA-API、VDPAU支持包
1
2
3
4
sudo dnf install -y mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld
# 如果已经安装了mesa-va-drivers和mesa-vdpau-drivers
sudo dnf swap -y mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap -y mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
  • 闭源的驱动大概率内置对VA-API、VDPAU的支持,因此无需执行上述命令;有些闭源驱动需要单独安装自己的VA-API和VDPAU支持包,可参考闭源驱动的官方文档;

例如:

1
sudo dnf install -y libva-intel-driver
  • 使用工具检查支持情况
1
2
3
4
# 检查VA-API支持情况
vainfo
# 检查VDPAU支持情况
vdpauinfo

VA-API支持情况

强行开启Firefox硬件加速

  • 访问about:config
  • 搜索ffmpeg,将结果中的media.ffmpeg.vaapi.enabled改成true
  • 重启Firefox

设置Firefox高级选项

开启Chromium/Edge硬件加速

方法

注意:此方法不适用于无GTK4环境安装的Chromium/Edge浏览器,例如Flatpak。

  • /usr/share/applications下找到chromium-browser.desktopmicrosoft-edge-{beta,dev}.desktop
  • 直接修改或复制一个副本进行修改
    • 修改Name=方便标识
    • 修改Exec=,在原命令的最后面加入如下参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 为方便解释,此处每行一个参数
# 使用系统GL渲染器
--use-gl=egl
# 启用VA-API支持,启用Ozone平台
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,UseOzonePlatform
# 设置Ozone平台使用Wayland作为显示服务
--ozone-platform=wayland
# 强制使用GPU光栅化
--force-gpu-rasterization
# 允许进行光栅化的线程直接读写GPU内存
--enable-zerocopy
# Wayland输入法支持
--enable-wayland-ime
# 使用GTK4库
--gtk-version=4
  • 若在副本中修改,则将副本替换/usr/share/applications下的文件,或保存到~/.local/share/applications
  • 注销当前用户,重新登录(使GNOME重新读取所有Desktop entry)
  • 使用修改后的Desktop entry启动Chromium/Edge

输入法不能用,如何解决?

image-20230222205454826

评论