Что такое терминальная команда, которая может показать версию OpenGL?

96

Итак, я хочу узнать, какая у меня версия OpenGL. У меня есть доступ к Ubuntu через SSH. Какую команду мне выполнить?

Kabumbus
источник

Ответы:

123

Чтобы проверить версию OpenGL,

glxinfo | grep "OpenGL version"

Вы получите вывод следующим образом,

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

Редактировать:

Возможно, вам повезет больше с современным OpenGL, просто добавив слово «версия» вместо «версия OpenGL», учитывая различия между профилями ядра и компата, а также различными версиями GLSL и 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

Обратите внимание, что фактическая версия представлена ​​«базовой версией профиля» (4.1), тогда как «версия OpenGL» представлена ​​как 3.0.

karthick87
источник
6
Осторожный! glxinfo сообщает вам версию OpenGL, используемую вашим DISPLAY, а не удаленной машиной! Тем не менее, он сообщит вам версию GLX удаленного компьютера (биты "client").
Рич
И если вы получаете правильную карту, но неправильную версию OpenGL, это, вероятно, драйверы nouveau / open source - либо занесите их в черный список, либо удалите их.
инженер
1
Я внес некоторые изменения, чтобы можно было найти лучшую информацию в современных версиях OpenGL, которые представляют несколько профилей, особенно с учетом того, что это лучший результат в поиске Google по запросу "Linux check opengl version".
Taywee
5
Примечание. В Ubuntu 16.04 glxinfoпо умолчанию недоступно. Чтобы использовать его, вам нужно установить mesa-utilsпакет.
starleaf1
1
@frank Посмотрите на ответ ниже, автором thomasmichaelwallace в разделе «Библиотеки разработки». Когда вы запускаете клиент openGL на удаленном компьютере, удаленный клиент использует удаленные библиотеки, но отображается на вашем сервере, поэтому иногда это немного сбивает с толку
Rich
19

в зависимости от того, что вы ищете:

Реализация Open GL

Вы можете использовать glxinfo из пакета mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Библиотеки развития

это зависит немного,

dpkg -s [package name]

сообщит вам информацию о версии и т. д. любого пакета.

но вам нужно знать, какая конкретная часть / реализация и т. д. opengl вас интересует. Я подозреваю, для вас это будет:

dpkg -s libglu1-mesa
thomasmichaelwallace
источник
14

Примечание: я добавил этот ответ позже, потому что ни один из существующих ответов не рассматривает важные аспекты, касающиеся ssh, и не даст вводящих в заблуждение значений тем, кто следует вышеприведенным инструкциям.

  1. Используйте X-forwarding при ssh-ing. Это включено с ssh -X.

    Без x-forwarding:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

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

    Здесь я должен отметить, что это не та видеокарта и номера версий . («Неправильно» с точки зрения того, что вы ожидаете).

  2. Установите DISPLAYпеременную в:0 , чтобы разрешить доступ к драйверу графической карты из удаленного сеанса.

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

    Здесь перечислены правильная видеокарта (та, что на удаленном компьютере), а также правильные номера версий.

swalog
источник
Для меня это localhost:10.0, к сожалению, привело к X Error of failed request: GLXBadContext.
phil294
4

Для тех, кто хочет только номер версии, например, чтобы указать его в аргументе программы, вы можете использовать

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

Примечание: optirun glxinfo | awk '/OpenGL version/ {print $4}'если вы используете шмель

yakoudbz
источник
1

Вы можете получить информацию, выполнив следующую команду:

DISPLAY=:0 glxgears -info | grep GL_VERSION

Это эхо что-то вроде:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Также попробуйте без DISPLAY=:0в случае проблем. Команда glxgearsнаходится в mesa-utilsпакете, который может быть установлен с:

sudo apt-get install mesa-utils
Sdaskr
источник
Это работа для меня. Freescale iMX6 Yocto poky 1.6.2.
Jiu
0

Если у вас есть root-доступ к удаленному компьютеру под управлением Ubuntu 16.04, вы можете запустить

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, открытый терминал и тип;

glxinfo | grep "OpenGL version"

Вы получите что-то подобное;

OpenGL version string: 3.0 Mesa 17.2.2

Если вы получили сообщение об ошибке, что программа glxinfo недоступна, вам нужно будет ввести команду

sudo apt install mesa-utils
Psyduck
источник