Linux - 从 nvidia 切换到 nouveau 驱动程序后的渲染性能

Linux - 从 nvidia 切换到 nouveau 驱动程序后的渲染性能

我使用 UBuntu 14.04 LTS。我已经清除了所有 nvidia 专有驱动程序,目前我的系统使用 Nouveau 驱动程序。这是以下的输出glxinfo | grep OpenGL

使用 nvidia 专有驱动程序时

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 346.59
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5.0 NVIDIA 346.59
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

使用 nouveau 驱动程序时

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.6, 256 bits)
OpenGL version string: 3.0 Mesa 10.6.0-devel
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:

当我运行GPU基准测试三角形测试我得到以下结果:

  • nvidia驱动:304455点,5073fps

  • nouveau 驱动程序:8466 点,142 fps

性能大幅下降。我可以更改 nouveau 设置中的某些内容以获得更好的结果吗?

编辑1

glxinfo |egrep -w 'rendering|renderer':

  • 直接渲染:是
  • OpenGL 渲染器字符串:llvmpipe 上的 Gallium 0.4(LLVM 3.6,256 位)

我不使用虚拟机中的系统。

答案1

你检查一下3d是否启用了?

glxinfo |egrep  -w 'rendering|renderer'

如果您读到有关“光栅”或“否”的内容,则表示未启用。即使启用开源驱动程序很好,但至少要让旧卡达到与 nvidia 专有驱动程序相同的性能,还需要做很多工作。

不清楚这个

“OpenGL 供应商字符串:VMware, Inc.”在虚拟机中使用这个?

答案2

您必须查看您的/var/log/Xorg.*.log文件(其中*表示环境变量中的第一个数字$DISPLAY)以找出未启用 3D 加速的原因。Gallium 0.4 on llvmpipe是一个软件渲染器,因此这表明 nouveau 并未真正使用。您还可以尝试以下命令来检查有关 libGL 配置错误的警告:

LIBGL_DEBUG=verbose glxinfo > /dev/null

这会将所有正常输出重定向glxinfo/dev/null(“洞”设备),同时保留控制台上的所有警告。

答案3

我遇到过同样的问题,但在不同的情况下。唯一可用的渲染器是 llvm。

经过大量谷歌搜索后,我意识到,由于不同的错误,我将 nomodeset 放入 grub ( /etc/default/grub) 行中GRUB_CMDLINE_LINUX_DEFAULT

在我的设置中,机器在没有这个参数的情况下也能正常工作。

检查grub中是否有参数nomodeset并将其删除。尝试一下是否有帮助。

相关内容