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ć?

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.


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

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.


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


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

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 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, 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.