本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

Mesa3D のレンダラーの切り替え

Linux の OpenGL 実装で有名な Mesa3D ですが、レンダラーの切り替えができることがわかったのでメモしておきます。
ちなみに The Mesa 3D Graphics Library って現時点においては 17.0 となってました。しかしながら動作実験環境は Ubuntu 16.04 で apt でインストールできるものを使用しているため、これよりも古いです。

切り替え方法

以下の環境変数で指定が可能です。

  • LIBGL_ALWAYS_SOFTWARE
  • GALLIUM_DRIVER

この環境変数で LIBGL_ALWAYS_SOFTWARE=1 とするとソフトウェア(エミュレーション)でのレンダラーが選択されるようです。
そして GALLIUM_DRIVER=softpipe を指定することで llvmpipe との切り替えができるようです。


実験

llvmpipe や softpipe に切り替えて使う方法も判ったので、それらでどのように GL コンテキストが変わるかをチェックしてみました。
ここでは glxgears サンプルを使用して計測を行いました。
普段は VMware Player の中で Linux を動かしているので、ここで計測しました。実機ではない点にご注意ください。

FPS GL_VERSION GL_RENDERER 設定
2550 2.1 Mesa 11.0.2 Gallium 0.4 on SVGA3D 環境変数セットなし
760 3.0 Mesa 11.0.2 Gallium 0.4 on llvmpipe LIBGL_ALWAYS_SOFTWARE=1
160 3.0 Mesa 11.0.2 Gallium 0.4 on softpipe LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=softpipe

まとめ

あまり需要がないかもしれませんが、簡単にレンダラー実装の切り替えを行う方法がわかりました。デフォルトで使用されるアクセラレートが有効になるドライバと llvmpipe の切り替えを行いつつデバッグ&開発を行っていくというスタイルができそうです。
意外にも llvmpipe は高速で十分実用と思っていましたが、このように比較するとアクセラレートが効くのは圧倒的ですね。

linux
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました