Co to jest polecenie terminalu, które może wyświetlać wersję OpenGL?

94

Chcę więc dowiedzieć się, która jest moja wersja OpenGL. Mam dostęp do Ubuntu przez SSH. Które polecenie mam wykonać?

Kabumbus
źródło

Odpowiedzi:

121

Aby sprawdzić wersję OpenGL,

glxinfo | grep "OpenGL version"

Otrzymasz wynik w następujący sposób,

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

Edytować:

Możesz mieć więcej szczęścia z nowoczesnym OpenGL po prostu szukającym „wersji” zamiast „wersji OpenGL”, biorąc pod uwagę różnice między profilami rdzenia i kompatybilnymi, a także różnymi wersjami GLSL i 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

Zauważ, że rzeczywista wersja jest prezentowana przez „wersję profilu podstawowego” (4.1), podczas gdy „wersja OpenGL” jest prezentowana jako 3.0.

karthick87
źródło
6
Ostrożny! glxinfo informuje cię o wersji OpenGL używanej przez DISPLAY, a nie zdalną maszynę! Jednak powie ci wersję GLX zdalnego komputera (bity „klienta”).
Bogaty
A jeśli otrzymujesz właściwą kartę, ale złą wersję OpenGL, prawdopodobnie są to sterowniki nouveau / open source - umieść je na czarnej liście lub odinstaluj.
Inżynier
1
Wprowadziłem kilka zmian, aby można było znaleźć lepsze informacje w nowoczesnych wersjach OpenGL, które prezentują wiele profili, szczególnie biorąc pod uwagę, że jest to najlepszy wynik w wyszukiwarce Google „Linux check opengl version”.
Taywee,
5
Uwaga: W systemie Ubuntu 16.04 glxinfodomyślnie nie jest dostępny. Aby móc z niego korzystać, musisz zainstalować mesa-utilspakiet.
starleaf1
1
@frank Spójrz na odpowiedź poniżej, autor: thomasmichaelwallace w sekcji Biblioteki programistyczne. Po uruchomieniu klienta openGL na zdalnym komputerze, klient zdalny korzysta ze zdalnych bibliotek, ale wyświetla się na serwerze, więc czasami jest to trochę mylące
Rich
19

w zależności od tego, czego szukasz:

Implementacja Open GL

Możesz użyć glxinfo z pakietu mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Biblioteki programistyczne

to trochę zależy

dpkg -s [package name]

poda informacje o wersji itp. dowolnego pakietu.

ale musisz wiedzieć, jaką konkretną częścią / implementacją itp. jesteś zainteresowany. Podejrzewam, że dla ciebie będzie to:

dpkg -s libglu1-mesa
thomasmichaelwallace
źródło
14

Uwaga: dodałem tę odpowiedź w późniejszym terminie, ponieważ żadna z istniejących odpowiedzi nie odnosi się do kluczowych aspektów dotyczących ssh i da wartości wprowadzające w błąd tym, którzy postępują zgodnie z powyższymi instrukcjami.

  1. Podczas przesyłania ssh użyj X-forwarding . Można to włączyć za pomocą ssh -X.

    Bez przekierowania x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    Dzięki 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:
    

    Powinienem tutaj zauważyć, że jest to zarówno niewłaściwa karta graficzna , jak i nieprawidłowe numery wersji . („Źle” pod względem tego, czego można oczekiwać).

  2. Ustaw DISPLAYzmienną na:0 , aby umożliwić dostęp do sterownika karty graficznej ze zdalnej sesji.

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

    Podaje prawidłową kartę graficzną (tę na komputerze zdalnym), a także prawidłowe numery wersji.

swalog
źródło
Dla mnie to localhost:10.0niestety skutkowało X Error of failed request: GLXBadContext.
phil294
4

Dla tych, którzy chcą tylko numeru wersji, na przykład aby podać go jako argument programu, możesz użyć

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

Uwaga: optirun glxinfo | awk '/OpenGL version/ {print $4}'jeśli używasz trzmiela

yakoudbz
źródło
1

Możesz uzyskać informacje, uruchamiając następujące polecenie:

DISPLAY=:0 glxgears -info | grep GL_VERSION

To echo:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Spróbuj także DISPLAY=:0w przypadku problemów. Polecenie glxgearsznajduje się w mesa-utilspakiecie, który można zainstalować za pomocą:

sudo apt-get install mesa-utils
Sdaskr
źródło
To praca dla mnie. Freescale iMX6 Yocto poky 1.6.2.
Jiu,
0

Jeśli masz uprawnienia roota do zdalnego komputera z systemem Ubuntu 16.04, możesz uruchomić

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
źródło
0

Ubuntu 17.10, otwarty terminal i typ;

glxinfo | grep "OpenGL version"

Otrzymasz coś takiego;

OpenGL version string: 3.0 Mesa 17.2.2

Jeśli pojawi się błąd, że program glxinfo jest niedostępny, musisz wprowadzić polecenie

sudo apt install mesa-utils
Psyduck
źródło