Що таке термінальна команда, яка може відображати версію OpenGL?


94

Тому я хочу дізнатися, яка моя версія OpenGL. У мене є доступ до Ubuntu через SSH. Яку команду виконувати?

Відповіді:


121

Щоб перевірити версію OpenGL,

glxinfo | grep "OpenGL version"

Ви отримаєте вихід таким чином,

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

Редагувати:

Можливо, вам пощастить, що сучасний OpenGL просто схопиться на "версію" замість "версії OpenGL", враховуючи відмінності між профілем core та compat, а також різними версіями 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.


6
Обережно! glxinfo повідомляє вам версію OpenGL, яку використовує ваш DISPLAY, а не віддалену машину! Однак він розповість вам про версію віддаленої машини GLX ("клієнтські" біти).
Багатий

І якщо ви отримуєте потрібну карту, але невірну версію 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

залежно від того, що ви шукаєте:

Відкрите впровадження GL

Ви можете використовувати glxinfo з пакету mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Бібліотеки розвитку

це трохи залежить,

dpkg -s [package name]

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

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

dpkg -s libglu1-mesa

14

Примітка. Цю відповідь я додав пізніше, оскільки жодна з існуючих відповідей не стосується важливих аспектів щодо ssh, і дасть оманливі значення тим, хто дотримується вищевказаних інструкцій.

  1. Використовуйте переадресацію X, коли ssh-ing. Це ввімкнено за допомогою ssh -X.

    Без переадресації x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    З переадресацією 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:
    

    Слід зазначити, що це і неправильна відеокарта , і неправильні номери версій . ("Неправильно" з точки зору того, що ви очікували).

  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:
    

    Тут перераховані правильна відеокарта (та, яка знаходиться на віддаленому комп'ютері), а також правильні номери версій.


Для мене це 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}'якщо ви використовуєте джмеля


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

Ця робота для мене. Freescale iMX6 Yocto poky 1.6.2.
Цзю

0

Якщо у вас є кореневий доступ до віддаленого комп'ютера під управлінням 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.