すべてのIntel GPUはソフトウェアレンダリング(Mesa)のみを使用しますか?

すべてのIntel GPUはソフトウェアレンダリング(Mesa)のみを使用しますか?

私が探しています:-

$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.7
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.0 Mesa 11.0.7
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.7
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

上から見るとこんな感じ -

OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile

ソフトウェアレンダリングが使用されているようです。必要に応じてハードウェアレンダリングを有効にする方法は?

答え1

ハードウェアレンダリングを使用している可能性があります。以下を確認してください。

$ glxinfo | fgrep direct
direct rendering: Yes

上記の「直接レンダリング」は以下のように説明される。ウィキペディアように:

これ直接レンダリングインフラストラクチャ(DRI)X Window Systemの下のグラフィックハードウェアに安全で効率的な方法で直接アクセスできるフレームワークです。 DRIの主な目的は、OpenGLのMesa実装のためのハードウェアアクセラレーションを提供することです。

@Ruslanが指摘したように、Mesaにはグラフィックハードウェアアクセラレータが利用できないときに代替手段として使用できるソフトウェアレンダラが含まれています。知られているガリウム存在するOpenGL renderer string。ただし、出力には、ソフトウェアレンダラではなくIntelレンダラが使用されていることが表示されます。

答え2

ハードウェアレンダリングを使用する必要があります。ソフトウェアレンダラーには別の名前があります。

$ LIBGL_ALWAYS_SOFTWARE=1 glxinfo|grep '\<renderer\>'
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)

簡単に確認するには、上記のコマンドの出力をnoneと比較してくださいLIBGL_ALWAYS_SOFTWARE=1。同じ出力が出たら、基本的にソフトウェアレンダラーを使用しているのです。それ以外の場合は、ハードウェアアクセラレーションの可能性が高くなります。

関連情報