Що таке термінальна команда, яка може відображати версію 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.