web-dev-qa-db-ja.com

すべてのIntelGPUはソフトウェアレンダリング(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

すべてソフトウェアレンダリングを使用していると言われているようですが、必要に応じてハードウェアレンダリングをオンにするにはどうすればよいですか?

4
shirish

おそらくハードウェアレンダリングを使用しています。これを確認してください。

$ glxinfo | fgrep direct
direct rendering: Yes

上記の「直接レンダリング」は、 Wikipedia 次のように説明されています。

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

@Ruslanが指摘しているように、Mesaには、グラフィックハードウェアアクセラレータが利用できない場合のフォールバックとして使用するソフトウェアレンダラーが含まれています。 OpenGL renderer stringではガリウムと呼ばれます。ただし、出力には、ソフトウェアではなくIntelレンダラーが使用されていることが示されています。

5
Ferenc Wágner

あなたは間違いなくハードウェアレンダリングを使用します。ソフトウェアレンダラーには別の名前があります。

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

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

2
Ruslan