我在 AMD Ryzen 3 5300U 上使用 Ubuntu 20.04.3,配有 Renoir 显卡,在 X11 上运行 Firefox 93 x64。我按照维基百科,但即使MOZ_LOG_="PlatformDecoderModule:5" firefox
显示输出
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
这是日志的全部输出。VA-API got one frame output...
根本没有显示,而且 Firefox 的 CPU 使用率徘徊在 56-68%。我已将环境变量设置.profile
为
export MOZ_DISABLE_RDD_SANDBOX=1
export MOZ_X11_EGL=1
是什么阻止 Firefox 使用硬件加速?mpv
成功使用 VA-API,1080p 视频的 CPU 负载约为 12-14%,因此我认为所有 VA-API 驱动程序都已安装并正常工作(如果使用的话)。
编辑:MOZ_LOG="Dmabuf:5, PlatformDecoderModule:5" firefox
我得到以下输出:
[Child 14739: MediaPDecoder #2]: D/PlatformDecoderModule VA-API Got one frame output with pts=0dts=0 duration=17000 opaque=-9223372036854775808
[Child 14739: MediaPDecoder #2]: D/Dmabuf DMABufSurfaceYUV::CreateYUVSurface() UID 1 from desc
[Child 14739: MediaPDecoder #2]: D/Dmabuf DMABufSurfaceYUV::UpdateYUVData() UID 1
[Child 14739: MediaPDecoder #2]: D/Dmabuf plane 0 size 1920 x 1080 format 20203852
[Child 14739: MediaPDecoder #2]: D/Dmabuf plane 1 size 960 x 540 format 38385247
[Child 14739: MediaPDecoder #2]: D/PlatformDecoderModule Created new VA-API DMABufSurface UID = 1
[Child 14739: MediaPDecoder #2]: D/PlatformDecoderModule VideoFrameSurfaceDMABuf: creating surface UID = 1
[Child 14739: MediaPDecoder #2]: D/PlatformDecoderModule VideoFrameSurfaceVAAPI: VAAPI locking dmabuf surface UID = 1
完整日志这里。这是否意味着 VA-API 确实正在使用?如果真的是 VA-API,那么为什么 CPU 占用率很高,并且连续观看 5 分钟视频后风扇声音很大?
答案1
检查加速视频解码的更好方法是通过命令sudo watch cat /sys/kernel/debug/dri/0/amdgpu_pm_info
并检查播放视频时是否VCN
启用UVD
。如果它保持禁用状态,则视频是软件解码的。在我的例子中,VCN 在 Firefox 或 mpv 播放视频时启用,而在 Chromium 和 Opera 中保持禁用状态。在较新的卡上,我们不需要使用扩展,enhanced-h264ify
因为 VP8/VP9 是在硬件中解码的。
删除export MOZ_DISABLE_RDD_SANDBOX=1
不会影响 Firefox VCN 功能。