GNU/Linux >> Linux の 問題 >  >> Ubuntu

Glxinfo Openglバージョンを理解しますか?

glxinfoコマンドの出力にあるすべての異なるバージョン文字列の違いは何ですか?

私はすでにここでこれを尋ねましたが、多くの回答は得られませんでした。とにかく、AskUbuntuにはもっと関連する質問があるようです。

glxinfo|grep OpenGLの出力 続く、

 glxinfo |grep Open
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 13.0.2
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 13.0.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
.

OpenGLバージョン文字列が3.0であるのに、なぜ「コアプロファイル」が4.5なのですか?

承認された回答:

OpenGL ESは、元のOpenGL仕様のサブセットであり、スマートフォンなどの組み込みシステム向けに設計されています。バージョン番号が対応していない理由は100%わかりませんが、対応していません。最新バージョンは、OpenGLの場合は4.5、OpenGLESの場合は3.2です。これは、出力のOpenGLES部分の理由を説明しています。あなたの場合、OpenGLとOpenGLESの両方の最新バージョンをサポートしています。

OpenGLおよびOpenGLESエントリには、バージョン文字列とシェーディング言語のバージョン文字列があることに注意してください。 OpenGL 3.3より前は、OpenGLのバージョン番号とシェーディング言語のバージョン番号が一致していませんでした。これが、出力に個別のエントリがある理由だと思います(古いハードウェアでは明らかに異なる可能性があるため)。出力に見られるように、バージョン番号(4.5)はシェーディング言語のバージョン(4.5)と一致します。

最も難しい部分(そして私が100%確信していない部分)は「OpenGLバージョン文字列」です。

私がいくつかの完全に異なるマシンで見たものから、これはバージョン3.0で制限されているように見えます。 3.0のシェーディング言語バージョンは1.3であるため、このOpenGLバージョンではシェーディング言語バージョンの文字列が意味をなします。しかし、なぜバージョンが3.0に制限されているのですか?私の考えは次のとおりです:

バージョン3.0では非推奨が導入されました(このリンクを参照)。これは、「コア」と「互換性」という2つの別個のプロファイルが由来する場所でもあります。 OpenGLの実装は、有効であるために「コア」仕様を実装するだけで済みます。

関連:Mac OSXはAppleMBA(5,2)のUbuntu Preciseのgrubメニューから起動しませんか?

特定のバージョンのMesaリリースノートを読むと、このコア/互換性プロファイルの問題に関連するステートメントが表示されます。以下は、最新バージョン17.0.0のリリースノートから抜粋したものです。

Mesa 17.0.0 implements the OpenGL 4.5 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don't support all the features required in OpenGL 4.5. OpenGL 4.5 is only available if requested at context creation because compatibility contexts are not supported.

最後の部分に注意してください「互換性コンテキストはサポートされていないため、OpenGL4.5はコンテキスト作成時に要求された場合にのみ使用できます」 。したがって、「OpenGLバージョン文字列」は、「互換性」プロファイルコンテキストでサポートされているバージョンであると思います(つまり、バージョン3.0より前の非推奨機能のサポートで)。


Ubuntu
  1. VPSが使用しているPHPとMySQLのバージョンはどれですか?

  2. 更新されたパッケージのバージョン?

  3. Pleskバックアップを理解する

  1. 同じインストールで2つの異なるバージョンのWineを使用するにはどうすればよいですか?

  2. Gnupgをアップグレードできませんか?

  3. Ubuntu 16.04のXpraバージョン?

  1. PHPバージョンを確認する方法

  2. Linux で複数の Java バージョンを操作する方法

  3. RPM のバージョンと命名スキームについて