web-dev-qa-db-ja.com

OpenGLバージョン文字列がコアプロファイルバージョン文字列と一致しないのはなぜですか?

「OpenGL Coreレンダラー用のOpenGLコアプロファイル3.2以降」を必要とするいくつかのUnity3Dゲームを実行しようとしています(ゲームの出力に応じて)。

私の知る限り、私はhave OpenGL 3.3。しかし、私のglxinfo出力は、非常に紛らわしいです:

glxinfo | grep "OpenGL"
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.2.0-devel
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 18.2.0-devel
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.2.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

だから、私は「コアプロファイルバージョン」3.3(Unity3Dで必要とされるよりも大きい)を持っていますが、私の「バージョン」は3.1ですか?これはなぜですか、それについて何ができますか?

Intel Core i5-3320Mを使用しており、Mesa 18.2とi915ドライバーを使用しています。

1
Leonora Tindall

コアプロファイルバージョンは、ドライバーでカードで使用できるGLのバージョンです。通常、これは本当に重要なことです。

OpenGLバージョン文字列は無視できます。互換性のあるプロファイルバージョンです。

ただし、特定の問題は、実際のGPUのハードウェアアクセラレーションではなく、システムが実際にllvmpipeレンダラーを使用していることのようです。 ベンダー文字列値はIntel Open Source Technology Centerのようなものである必要がありますレンダラー文字列Mesa DRI Intel(R) Ivybridge Mobileintel-microcodeパッケージがインストールされていることを確認する必要がある場合があります。

2
dobey

これは、Ubuntu 18.04アップグレードプロセスの一連のバグが原因であることがわかりました。

バグ1バグ2 、および バグ は、libeglを含むシステムをllvmpipeにフォールバックさせました-ソフトウェアレンダリング。

libeglは、libnvidia-gl-390に依存しているため、それを必要としないシステムに誤ってインストールされました。

libnvidia-gl-390は多くのシステムで誤って必要でした。アンインストールすると、この問題が修正されます。

0
Leonora Tindall