OpenGL 供应商为何是“Mesa 项目”

OpenGL 供应商为何是“Mesa 项目”

我正在尝试在 Nvidia 卡上开发 OpenGL 2 代码,但由于某种原因,我的 OpenGL 版本是 1.4,而供应商是Mesa Project而不是Nvidia

OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 1.4 (2.1 Mesa 9.2.0-devel)

我安装并重新安装了最新的 nvidia 驱动程序(http://www.nvidia.com/download/driverResults.aspx/132546/en-us)。

跑步ldd $(which glxinfo)可得:

linux-vdso.so.1 =>  (0x00007fff53533000)
libGL.so.1 => /usr/lib/nvidia-390/libGL.so.1 (0x00007f99e8020000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f99e7ce6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f99e791c000)
libnvidia-tls.so.390.46 => /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.46 (0x00007f99e7718000)
libnvidia-glcore.so.390.46 => /usr/lib/nvidia-390/libnvidia-glcore.so.390.46 (0x00007f99e5918000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f99e5706000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f99e5502000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f99e52e0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f99e835d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f99e4fd7000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f99e4dd3000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f99e4bcd000)

因此它似乎正在使用正确的 nvidia libs。

更多信息:

  • 我正在运行 Ubuntu 16.04。
  • 可能很重要- 我通过 VNC 连接到网关站的服务器,并ssh -X从网关站连接到服务器。

知道为什么不使用 Nvidia OpenGL 吗?

答案1

这是因为您的用例中没有使用 GPU 进行渲染。正如glxinfo您发布的输出所示,软件光栅化器正在用于 GL 渲染到有问题的 X DISPLAY(大概是通过 ssh 转发的显示,这意味着 glxinfo 正在查询网关上的 X 服务器以获取 GL 信息)。

相关内容