Was ist ein Terminalbefehl, der die OpenGL-Version anzeigen kann?


95

Also möchte ich herausfinden, welche Version meine OpenGL ist. Ich habe Zugriff auf Ubuntu über SSH. Welchen Befehl soll ich ausführen?

Antworten:


122

So überprüfen Sie die OpenGL-Version:

glxinfo | grep "OpenGL version"

Sie erhalten die Ausgabe wie folgt:

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

Bearbeiten:

Möglicherweise haben Sie mehr Glück, wenn modernes OpenGL aufgrund der Unterschiede zwischen dem Core- und dem kompatiblen Profil sowie den verschiedenen GLSL- und GLES-Versionen nur nach "Version" anstatt nach "OpenGL-Version" greift:

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

Beachten Sie, dass die aktuelle Version von der "Kernprofilversion" (4.1) dargestellt wird, während die "OpenGL-Version" als 3.0 dargestellt wird.


6
Vorsichtig! glxinfo teilt Ihnen mit, welche Version von OpenGL von Ihrem DISPLAY verwendet wird, nicht von der Remote-Maschine! Es wird Ihnen jedoch die GLX-Version des Remotecomputers (die "Client" -Bits) mitteilen.
Rich

Und wenn Sie die richtige Karte, aber die falsche OpenGL-Version erhalten, dann sind es wahrscheinlich die Nouveau / Open Source-Treiber - entweder, indem Sie sie auf die schwarze Liste setzen oder deinstallieren.
Ingenieur

1
Ich habe einige Änderungen vorgenommen, damit mit modernen OpenGL-Versionen, die mehrere Profile enthalten, bessere Informationen gefunden werden können, insbesondere, da dies das Top-Ergebnis einer Google-Suche nach "Linux check opengl version" ist.
Taywee

5
Hinweis: In Ubuntu 16.04 glxinfoist standardmäßig nicht verfügbar. Um es verwenden zu können, müssen Sie das mesa-utilsPaket installieren .
Starleaf1

1
@frank Schauen Sie sich die Antwort von thomasmichaelwallace im Abschnitt Entwicklungsbibliotheken an. Wenn Sie einen openGL-Client auf einem Remotecomputer ausführen, verwendet der Remoteclient die Remotebibliotheken, wird jedoch auf Ihrem Server angezeigt, sodass es manchmal etwas verwirrend ist
Rich

19

je nachdem, wonach Sie suchen:

Öffnen Sie die GL-Implementierung

Sie können glxinfo aus dem Paket mesa-utils verwenden:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Entwicklungsbibliotheken

das hängt ein wenig davon ab,

dpkg -s [package name]

zeigt Ihnen Versionsinformationen usw. zu jedem Paket an.

Aber Sie müssen wissen, an welchem ​​Teil / welcher Implementierung usw. von OpenGL Sie interessiert sind. Ich vermute, für Sie wird es sein:

dpkg -s libglu1-mesa

14

Hinweis: Ich habe diese Antwort zu einem späteren Zeitpunkt hinzugefügt, da keine der vorhandenen Antworten entscheidende Aspekte in Bezug auf ssh behandelt und denjenigen, die die obigen Anweisungen befolgen , irreführende Werte verleiht .

  1. Verwenden Sie beim Senden die X-Weiterleitung . Dies wird mit aktiviert ssh -X.

    Ohne X-Forwarding:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

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

    Ich sollte hier beachten, dass dies sowohl die falsche Grafikkarte als auch die falschen Versionsnummern sind . ('Falsch' in Bezug auf das, was Sie erwarten würden).

  2. Setzen Sie die DISPLAYVariable auf:0 , um den Zugriff auf den Grafikkartentreiber von der Remote-Sitzung aus zu ermöglichen.

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

    Hier werden die richtige Grafikkarte (die auf dem Remotecomputer) sowie die richtigen Versionsnummern aufgelistet.


Für mich war es localhost:10.0leider so X Error of failed request: GLXBadContext.
Phil294

4

Für diejenigen, die nur die Versionsnummer möchten, um sie beispielsweise als Argument für ein Programm anzugeben, können Sie verwenden

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

Hinweis: optirun glxinfo | awk '/OpenGL version/ {print $4}'Wenn Sie Hummeln verwenden


1

Sie können die Informationen abrufen, indem Sie den folgenden Befehl ausführen:

DISPLAY=:0 glxgears -info | grep GL_VERSION

Dieses Echo ist wie folgt:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Bei DISPLAY=:0Problemen auch ohne probieren . Der Befehl glxgearsbefindet sich in einem mesa-utilsPaket, das installiert werden kann mit:

sudo apt-get install mesa-utils

Diese Arbeit für mich. Freescale iMX6 Yocto poky 1.6.2.
Jiu

0

Wenn Sie root-Zugriff auf einen Remotecomputer haben, auf dem Ubuntu 16.04 ausgeführt wird, können Sie es ausführen

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, offenes Terminal und Typ;

glxinfo | grep "OpenGL version"

Sie werden so etwas erhalten;

OpenGL version string: 3.0 Mesa 17.2.2

Wenn Sie eine Fehlermeldung erhalten, dass das Programm glxinfo nicht verfügbar ist, müssen Sie den Befehl eingeben

sudo apt install mesa-utils
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.