OpenGLバージョンを表示できる端末コマンドとは何ですか?


95

だから、OpenGLのどのバージョンを見つけたいのです。SSH経由でUbuntuにアクセスできます。どのコマンドを実行しますか?

回答:


122

OpenGLバージョンを確認するには、

glxinfo | grep "OpenGL version"

次のように出力が得られます。

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

編集:

コアプロファイルと互換プロファイル、およびさまざまなGLSLバージョンとGLESバージョンの違いを考えると、「OpenGLバージョン」の代わりに「バージョン」を単にgrepするだけで、最新のOpenGLの方が幸運かもしれません。

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は、リモートマシンではなく、DISPLAYが使用するOpenGLのバージョンを通知します!ただし、リモートマシンのGLXバージョン(「クライアント」ビット)はわかります。
リッチ

また、正しいカードを入手してもOpenGLバージョンが間違っている場合は、おそらくnouveau /オープンソースドライバーです。ブラックリストに登録するか、アンインストールしてください。
エンジニア

1
複数のプロファイルを表示する最新のOpenGLバージョンでより良い情報を見つけることができるようにいくつかの編集を行いました。特に、これが「Linux check opengl version」のGoogle検索のトップ結果であることを考えます。
Taywee

5
注:Ubuntu 16.04では、glxinfoデフォルトでは使用できません。使用するには、mesa-utilsパッケージをインストールする必要があります。
starleaf1

1
@frank開発ライブラリセクションのthomasmichaelwallaceによる以下の回答をご覧ください。あなたがリモートマシン上でのOpenGLクライアントを実行すると、それは時には少し混乱ですので、リモートクライアントは、サーバーにリモートライブラリが、ディスプレイを使用しています
リッチ

19

探しているものに応じて:

オープンGL実装

mesa-utilsパッケージからglxinfoを使用できます。

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

開発ライブラリ

これは少し異なります

dpkg -s [package name]

パッケージのバージョン情報などを通知します。

しかし、あなたはあなたが興味を持っているopenglの特定の部分/実装などを知る必要があります。

dpkg -s libglu1-mesa

14

注:既存の回答はいずれもsshに関する重要な側面を扱っておらず、上記の指示に従う人に誤解招く価値を与えるため、この回答は後日追加しました。

  1. ssh-ingするときにX-forwardingを使用します。これはで有効になりssh -Xます。

    X転送なし:

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

    これにより、正しいグラフィックカード(リモートコンピューター上のもの)と正しいバージョン番号が一覧表示されます。


私にとっては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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.