¿Qué es el comando de terminal que puede mostrar la versión de OpenGL?

96

Así que quiero averiguar cuál es mi versión de OpenGL. Tengo acceso a Ubuntu a través de SSH. ¿Qué comando debo ejecutar?

Kabumbus
fuente

Respuestas:

123

Para verificar la versión de OpenGL,

glxinfo | grep "OpenGL version"

Obtendrá la salida de la siguiente manera,

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

Editar:

Es posible que tenga mejor suerte con OpenGL moderno que solo busca "versión" en lugar de "versión OpenGL" dadas las diferencias entre los perfiles de núcleo y compatibilidad, así como las diversas versiones GLSL y GLES:

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

Observe que la versión real se presenta en la "versión de perfil central" (4.1), mientras que la "versión OpenGL" se presenta como 3.0.

karthick87
fuente
66
¡Cuidado! ¡glxinfo le está diciendo la versión de OpenGL que usa su DISPLAY, no la máquina remota! Sin embargo, le dirá la versión GLX de la máquina remota (los bits "cliente").
Rico
Y si está obteniendo la tarjeta correcta pero la versión de OpenGL incorrecta, probablemente sean los controladores nouveau / open source, ya sea ponerlos en la lista negra o desinstalarlos.
Ingeniero
1
He realizado algunas ediciones para que se pueda encontrar mejor información con las versiones modernas de OpenGL que presentan múltiples perfiles, especialmente dado que este es el resultado principal en una búsqueda en Google de "Linux check opengl version".
Taywee
55
Nota: En Ubuntu 16.04, glxinfono está disponible por defecto. Para poder usarlo, necesita instalar el mesa-utilspaquete.
starleaf1
1
@frank Mira la respuesta a continuación, por thomasmichaelwallace en la sección Bibliotecas de desarrollo. Cuando ejecuta un cliente openGL en una máquina remota, el cliente remoto usa las bibliotecas remotas, pero se muestra en su servidor, por lo que a veces es un poco confuso
Rich
19

dependiendo de lo que estés buscando:

Implementación de Open GL

Puede usar glxinfo, desde el paquete mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Bibliotecas de desarrollo

esto depende un poco

dpkg -s [package name]

le informará la información de versión, etc. de cualquier paquete.

pero necesitará saber qué parte / implementación específica, etc. de opengl le interesa. Sospecho que para usted será:

dpkg -s libglu1-mesa
thomasmichaelwallace
fuente
14

Nota: He agregado esta respuesta en una fecha posterior, porque ninguna de las respuestas existentes aborda aspectos cruciales con respecto a ssh, y dará valores engañosos a quienes sigan las instrucciones anteriores.

  1. Utilice el reenvío de X cuando ssh-ing. Esto está habilitado con ssh -X.

    Sin reenvío x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    Con reenvío 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:
    

    Debo señalar aquí que esta es la tarjeta gráfica incorrecta y los números de versión incorrectos . ('Incorrecto' en términos de lo que cabría esperar).

  2. Establezca DISPLAYvariable en:0 , para permitir el acceso al controlador de la tarjeta gráfica desde la sesión remota.

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

    Esto enumera la tarjeta gráfica correcta (la de la computadora remota), así como los números de versión correctos.

swalog
fuente
Para mí, fue localhost:10.0, desafortunadamente, como resultado X Error of failed request: GLXBadContext.
phil294
4

Para aquellos que solo quieren el número de versión, por ejemplo, para darlo como argumento de un programa, pueden usar

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

Nota: optirun glxinfo | awk '/OpenGL version/ {print $4}'si está usando abejorro

yakoudbz
fuente
1

Puede obtener la información ejecutando el siguiente comando:

DISPLAY=:0 glxgears -info | grep GL_VERSION

Esto se parece a algo como:

GL_VERSION    = 3.3.0 NVIDIA 340.93

También intente sin DISPLAY=:0problemas en caso de problemas. El comando glxgearsestá en un mesa-utilspaquete que se puede instalar con:

sudo apt-get install mesa-utils
Sdaskr
fuente
Este trabajo para mi. Freescale iMX6 Yocto poky 1.6.2.
Jiu
0

Si tiene acceso de root a una computadora remota con Ubuntu 16.04, puede ejecutar

user@local_computer:~$ ssh [email protected]
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
Erik Sjölund
fuente
0

Ubuntu 17.10, terminal abierto y tipo;

glxinfo | grep "OpenGL version"

Recibirás algo como esto;

OpenGL version string: 3.0 Mesa 17.2.2

Si recibe un error de que el programa glxinfo no está disponible, deberá ingresar el comando

sudo apt install mesa-utils
Psyduck
fuente