树莓派显示加速¶
在 Raspberry Pi 400的4K显示 和 Raspberry Pi 4B的4K显示 我们尝试激活 4K@60Hz 显示分辨率,涉及到有关显示加速的配置优化。从操作系统整体上加速显示,不仅有启动配置,也有桌面应用的加速。本文汇总相关设置,提供一个整体建议。
升级系统和安装系统库¶
在调优系统之前,首先要将系统升级到最新:
sudo apt update
sudo apt dist-upgrade
安装必要库:
sudo apt install libgles2-mesa libgles2-mesa-dev xorg-dev
配置显示¶
使用
raspi-config
配置或直接修改/boot/config.txt
(树莓派3的32位系统) 或/boot/firmware/usercfg.txt
(树莓派4的64位系统)dtoverlay=vc4-fkms-v3d max_framebuffers=2 gpu_mem=128 hdmi_enable_4kp60=1
上述配置中启用了开源 vc4-fkms-v3d
3D显示驱动(Fake KMS),并且配置 129MB 内存给GPU内存管理。 ( 有关GPU需要预分配内存可以参考 Raspberry Pi OS Memory options in config.txt )
备注
启用 vc4-fkms-v3d
显示驱动非常重要,没有这个驱动,我在 树莓派Raspberry Pi 400 上运行 Kali Linux 无法识别HDMI连接的显示器型号 HPN 27"
并且也无法选择 2560x1440
高分辨率(该显示器支持2k),只能使用模糊的 1920x1080
分辨率
内存分离和CMA分配¶
虽然我们配置了有多少内存分配给GPU,剩余内存分配给CPU,但是这个内存分配默认是动态的。为了能够提升性能,可以采用内存分离配置来优化。
备注
不过,我现在在 树莓派Raspberry Pi 400 上使用 raspi-config
找不到 memory splitting
选项了。
可以手工修订
/boot/config.txt
dtoverlay=vc4-fkms-v3d, cma-128
这里 cma-128
就是预分配给GPU内存量。
重启和检查¶
重启系统通过以下命令检查3D驱动是否已经加载和工作:
cat /proc/device-tree/soc/firmwarekms@7e600000/status
cat /proc/device-tree/v3dbus/v3d@7ec04000/status
如果两个返回值都是 okay
则已经启用了硬件加速。如果结果是 disabled
则尝试其他 dtoverlay
选项,然后重启检查。
启用Firefox硬件加速¶
需要注意,虽然系统硬件加速已经启用,但是Firefox或chromium默认是没有配置使用硬件加速。
在Firefox中地址栏输入
about:support
,然后检查Compositing
配置项,如果是Basic
就表明没有启用硬件加速在Firefox中地址栏输入
about:config
,然后选择以下配置项:layers.acceleration.force-enabled
点击触发设置该值为
true
,然后重启Firefox。再次打开about:support
页面,检查Compositing
配置项是否是OpenGL
的话就表明激活了硬件加速。
在使用上的感受区别就是,当滚动Firefox的WEB页面时,不再出现 Xorg
进程大量占用CPU资源情况(几乎不增加CPU)。
启用Chromium硬件加速¶
Chromium硬件加速配置检查位于 chrome://gpu
,配置修改则在 chrome://flags
。
我查看了一下当前配置 Graphics Feature Status
Canvas: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Hardware accelerated
OpenGL: Enabled
Rasterization: Hardware accelerated on all pages
Skia Renderer: Enabled
Video Decode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
在
chrome://flags
中找到Override software rendering list
将参数值从Default
修改为Enabled
,这样就覆盖了内建的软件渲染列表,并且在unsupported system configurations上激活了GPU加速。
备注
我在 Kali Linux for arm 上实践,发现已经激活了GPU加速,不需要上述 Override software rendering list
激活(激活也没有变化)
在
chrome://gup
页面再次检查,就会看到Hardware Protected Video Decode: Hardware accelerated
可以看到有2项没有激活硬件加速:
Video Decode: Software only. Hardware acceleration disabled Vulkan: Disabled
上述2个硬件加速可以通过 chrome://flags
强制设置打开
VLC激活硬件加速¶
在VLC软件的配置 Tools > Preferences
中的 Video
面板的 Video Settings > Output
中可以选择 OpenGL video output。
注意,如果VLC没有编译OpenGL支持,这该选项设置不会生效。