Firefox 拒绝使用 Nvidia GPU 的 GPU 硬件加速。如何解决?

Firefox 拒绝使用 Nvidia GPU 的 GPU 硬件加速。如何解决?

尝试在 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 件重要的事情:

  1. 我无法让 Firefox 稳定地运行这​​个新驱动程序。因此,我不得不安装不稳定的分支Firefox Nightly

  2. 它在默认的 EGL 后端上不起作用,所以我不得不添加NVD_BACKEND=直接/etc/environment

  3. 让它理解 YouTube 经常使用的 VP9 编解码器有点棘手。因此安装它libgstreamer-插件-bad1.0-dev编译之前或直接安装 FF 插件转译器这将迫使 YouTube 使用旧式的 h264 编解码器。

相关内容