尝试在 Firefox 115 snap 中开启 GPU 加速。
Ubuntu 22.04.2 LTS
NVIDIA 公司 GP106 [GeForce GTX 1060 6GB]
NVIDIA 驱动程序版本:535.54.03
layers.acceleration.force-enabled = true
layers.offmainthreadcomposition.enabled = true (this key was missing, created it)
我重启了 Firefox,重启了系统。为了检查它是否正常工作,我启动了nvidia-smi dmon
,用 Firefox 播放了 YouTube 和本地视频h264.mp4
,看看dec
终端输出列中是否有除 0 以外的内容。当我用 VLC 播放视频时,它显示 GPU 解码负载的百分比,但 Firefox 拒绝使用 GPU。有什么办法可以解决这个问题吗?谢谢!
更新
感谢 Raffa 的回答,我更改了一些其他设置,如下所示:
gfx.webrender.all false -> true
dom.webgpu.enabled false -> true
layers.gpu-process.enabled false -> true
layers.mlgpu.enabled add
media.gpu-process-decoder false -> true
media.ffmpeg.vaapi.enabled true (no change)
没有成功。还尝试使用 Chromium 进行同样的测试,但没有成功。在 Firefox 中,about:support
我发现了很多失败,以下是其中一些:
默认的 WebGPU 适配器"navigator.gpu.requestAdapter({})": { "not_supported": "WebGPU is not yet available in Release or Beta builds."
GPU 进程Disabled by default = Enabled via layers.gpu-process.enabled = Blocked; error code FEATURE_FAILURE_DISABLED
WEBRENDER_COMPOSITORDisabled by default = Cannot be enabled in release or beta = Blocked; error code FEATURE_FAILURE_DISABLE_RELEASE_OR_BETA
网络图形处理器 WebGPU cannot be enabled in release or beta = Blocked; error code WEBGPU_DISABLE_RELEASE_OR_BETA
硬件视频解码default = available ; user = force_enabled ; runtime = unavailable = Force disabled by gfxInfo = Blocked; error code FEATURE_FAILURE_VIDEO_DECODING_TEST_FAILED
现在我想知道,也许我应该尝试一些 alpha 版本?
更新2
因此,我尝试了 Firefox Nightly,这是早期的 alpha 版本。是的,一些失败字符串消失about:support
了,例如这个:
默认的 WebGPU 适配器 "wgpuBackend": "Vulkan", "wgpuDevice": 7171, "wgpuDeviceType": "DiscreteGpu", "wgpuDriver": "NVIDIA", "wgpuDriverInfo": "535.54.03", "wgpuName": "NVIDIA GeForce GTX 1060 6GB", "wgpuVendor": 4318
但仍然硬件视频解码说Force disabled by gfxInfo ; FEATURE_FAILURE_VIDEO_DECODING_TEST_FAILED
更改设置media.hardware-video-decoding.force-enabled = true
并重新启动 Firefox Nightly 后,我在终端输出中看到[GFX1-]: vaapitest: ERROR [GFX1-]: vaapitest: VA-API test failed: failed to initialise VAAPI connection.
到目前为止,我发现 VA-API无法工作使用专有 Nvidia 驱动程序,我需要使用 GPU (NVENC) 来编码视频。看来我必须在这里停下来,希望有人能找到解决方案。
答案1
好的,我终于找到了解决方案。你可以找到一些理论这里和这里简而言之:Firefox 仅理解 VA-API 硬件加速。VA-API 不支持 Nvidia 专有驱动程序。因此,我们需要一个驱动程序,该驱动程序假装是 VA-API,但其引擎盖下有 NVDEC。驱动程序是这里。
3 件重要的事情:
我无法让 Firefox 稳定地运行这个新驱动程序。因此,我不得不安装不稳定的分支Firefox Nightly。
它在默认的 EGL 后端上不起作用,所以我不得不添加NVD_BACKEND=直接到
/etc/environment
让它理解 YouTube 经常使用的 VP9 编解码器有点棘手。因此安装它libgstreamer-插件-bad1.0-dev编译之前或直接安装 FF 插件转译器这将迫使 YouTube 使用旧式的 h264 编解码器。