So I want to find out which is my OpenGL version. I have access to Ubuntu via SSH. Which command shall I execute?

up vote 107 down vote accepted

To Check OpenGL Version,

glxinfo | grep "OpenGL version"

You will get the output as follows,

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

Edit:

You may have better luck with modern OpenGL just grepping for "version" instead of "OpenGL version" given the differences between the core and compat profiles, as well as the various GLSL and GLES versions:

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

Notice that the actual version is presented by the "core profile version" (4.1), whereas the "OpenGL version" is presented as 3.0.

  • 5
    Careful! glxinfo is telling you the version of OpenGL used by your DISPLAY, not the remote machine! However, it will tell you the GLX version of the remote machine (the "client" bits). – Rich Apr 3 '15 at 0:12
  • And if you're getting the right card but wrong OpenGL version, it's probably the nouveau / open source drivers -- either blacklist them or uninstall them. – Arcane Engineer Apr 13 '15 at 12:00
  • 1
    I've made some edits so that better information can be found with modern OpenGL versions that present multiple profiles, especially given that this is the top result on a google search for "Linux check opengl version". – Taywee Feb 20 '16 at 23:31
  • 2
    Note: In Ubuntu 16.04, glxinfo is not available by default. To be able to use it, you need to install mesa-utils package. – starleaf1 Jul 31 '17 at 4:55

depending on what you're looking for:

Open GL Implementation

You can use glxinfo, from the mesa-utils package:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Development Libraries

this depends a little,

dpkg -s [package name]

will tell you version information, etc. of any package.

but you'll need to know what specific part/implementation, etc. of opengl you're interested in. i suspect, for you, it'll be:

dpkg -s libglu1-mesa

Note: I've added this answer at a later date, because none of the existing answers address a crucial aspects regarding ssh, and will give misleading values to those who follow the above instructions.

  1. Use X-forwarding when ssh-ing. This is enabled with ssh -X.

    Without x-forwarding:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    With x-forwarding:

    $ 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:
    

    I should note here that this is both the wrong graphics card, and wrong version numbers. ('Wrong' in terms of what you would expect).

  2. Set DISPLAY variable to :0, to allow access to the graphic card's driver from the remote session.

    $ 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:
    

    This lists the correct graphics card (the one on the remote computer), as well as the correct version numbers.

  • For me, it was localhost:10.0, unfortunately resulting in X Error of failed request: GLXBadContext. – Blauhirn May 17 '17 at 22:18

For those who only want the version number, for example to give it in argument of a program, you can use

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

Note: optirun glxinfo | awk '/OpenGL version/ {print $4}' if you are using bumblebee

You can get the information by running following command:

DISPLAY=:0 glxgears -info | grep GL_VERSION

This echos something like:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Also try without DISPLAY=:0 in case of problems. The command glxgears is in mesa-utils package which can be installed with:

sudo apt-get install mesa-utils
  • This work for me. Freescale iMX6 Yocto poky 1.6.2. – Jiu Apr 25 '17 at 6:58

If you have root access to a remote computer running Ubuntu 16.04, you could run

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

Ubuntu 17.10, open terminal and type;

glxinfo | grep "OpenGL version"

You will recieve something like this;

OpenGL version string: 3.0 Mesa 17.2.2

If you receive an error that the program glxinfo is not available, you will need to enter the command

sudo apt install mesa-utils

protected by Community Dec 5 '17 at 13:09

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.