能显示OpenGL版本的终端命令是什么?


94

所以我想找出哪个是我的OpenGL版本。我可以通过SSH访问Ubuntu。我应该执行哪个命令?

Answers:


121

要检查OpenGL版本,

glxinfo | grep "OpenGL version"

您将获得如下输出,

glxinfo | grep "OpenGL version"
OpenGL version string: 1.4 (2.1 Mesa 7.7.1)

编辑:

考虑到核心和兼容配置文件以及各种GLSL和GLES版本之间的差异,对于现代OpenGL来说,您可能会碰运气,只需为“版本”而不是“ OpenGL版本”添加grep:

glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 4.1
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.2
OpenGL core profile shading language version string: 4.10
OpenGL version string: 3.0 Mesa 11.1.2
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

请注意,实际版本由“核心配置文件版本”(4.1)表示,而“ OpenGL版本”由3.0表示。


6
小心!glxinfo告诉您DISPLAY使用的OpenGL版本,而不是远程计算机!但是,它将告诉您远程计算机的GLX版本(“客户端”位)。
Rich

而且,如果您获得了正确的显卡,但使用了错误的OpenGL版本,则可能是新手/开源驱动程序-将其列入黑名单或将其卸载。
工程师

1
我进行了一些编辑,以便可以使用呈现多个配置文件的现代OpenGL版本找到更好的信息,尤其是考虑到这是Google搜索“ Linux check opengl version”时的最高结果。
2016年

5
注意:在Ubuntu 16.04中,glxinfo默认情况下不可用。要使用它,您需要安装mesa-utils软件包。
starleaf1

1
@frank请在“开发库”部分的thomasmichaelwallace中查看以下答案。在远程计算机上运行openGL客户端时,远程客户端会使用远程库,但会显示在服务器上,因此有时会有些混乱
Rich

19

取决于您要寻找的内容:

开放式GL实施

您可以从mesa-utils包中使用glxinfo:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

开发图书馆

这取决于一点

dpkg -s [package name]

会告诉您任何软件包的版本信息等。

但是您需要知道您对opengl感兴趣的特定部分/实现等。我怀疑对您来说,它将是:

dpkg -s libglu1-mesa

14

注意:我稍后会添加此答案,因为现有的答案都没有解决有关ssh的关键方面,并且会给遵循上述说明的人带来误导性的价值

  1. ssh-ing时使用X-forwarding。启用了ssh -X

    没有x转发:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    使用x转发:

    $ ssh -X MYCOMP
    $ glxinfo | grep -i opengl
    OpenGL vendor string: NVIDIA Corporation
    OpenGL renderer string: GeForce 8800 GT/PCIe/SSE2
    OpenGL version string: 2.1.2 NVIDIA 310.44
    OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
    OpenGL extensions:
    

    我应该在这里注意,这既是错误的图形卡,又是错误的版本号。(就您的期望而言,“错误”)。

  2. DISPLAY变量设置为:0,以允许从远程会话访问图形卡的驱动程序。

    $ ssh -X MYCOMP
    $ DISPLAY=:0
    $ glxinfo | grep -i opengl
     OpenGL vendor string: NVIDIA Corporation
     OpenGL renderer string: GeForce GTX 550 Ti/PCIe/SSE2
     OpenGL version string: 4.3.0 NVIDIA 310.14
     OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
     OpenGL extensions:
    

    这列出了正确的图形卡(远程计算机上的图形卡)以及正确的版本号。


对我来说localhost:10.0,不幸的是导致了X Error of failed request: GLXBadContext
phil294

4

对于只需要版本号的人,例如在程序的参数中给出版本号的用户,可以使用

$ glxinfo | awk '/OpenGL version/ {print $4}'
3.0

注意:optirun glxinfo | awk '/OpenGL version/ {print $4}'如果您使用的是大黄蜂


1

您可以通过运行以下命令来获取信息:

DISPLAY=:0 glxgears -info | grep GL_VERSION

这呼应类似:

GL_VERSION    = 3.3.0 NVIDIA 340.93

如果没有DISPLAY=:0问题,也请尝试。该命令glxgears位于mesa-utils软件包中,可以通过以下方式安装:

sudo apt-get install mesa-utils

这项工作对我来说。飞思卡尔iMX6 Yocto poky 1.6.2。

0

如果您具有运行Ubuntu 16.04的远程计算机的超级用户访问权限,则可以运行

user@local_computer:~$ ssh root@remote.example.com
root@remote:~# export DISPLAY=:0
root@remote:~# export XAUTHORITY=/var/lib/lightdm/.Xauthority
root@remote:~# glxinfo | grep -i "OpenGL version"
OpenGL version string: 3.0 Mesa 11.2.0

0

Ubuntu 17.10,打开终端并输入;

glxinfo | grep "OpenGL version"

您会收到这样的消息;

OpenGL version string: 3.0 Mesa 17.2.2

如果收到错误消息程序glxinfo不可用,则需要输入命令

sudo apt install mesa-utils
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.