Raspberry Pi2 の X11 で OpenGL のハードウェアアクセラレート – その2 –

glxgears
glxgears

Raspberry Pi2 では、Desktop GL driver を有効化することで、X11 上で OpenGL アプリケーションのハードウェアアクセラレートが可能となります。

Raspberry Pi2 の X11 で OpenGL のハードウェアアクセラレート – その1-」では、Desktop GL driver の有効化方法を紹介しました。

今回は、ソフトウェアレンダラーとの比較と Desktop GL driver の問題点を紹介します。

ソフトウェアレンダラーとの比較:

Raspberry Pi 2 では  OpenGL アプリケーションをハードウェアアクセラレートすることができますが、デフォルト状態または Desktop GL driver を無効化した場合には、ソフトウェアレンダラーで描画されます。

Desktop GL driver が使えない Raspberry Pi1 や Pi Zero も同様にソフトウェアレンダラーが使われます。

この状態で glxgears を実行した画面がこれです。

software rendering
software rendering

Raspberry Pi2 では約 23 FPSでした。Desktop GL driver を有効化した場合に約 60 FPS でしたのでソフトウェア処理だと随分遅いことがわかります。(Pi1 や Pi Zero の場合はもっと性能が低いことでしょう。)

ただ、glxgears の場合は描画結果も正しくはなく、ギアが点滅表示される等の不具合がでています。ソフトウェアレンダラーなら遅いながらも正しく描画されても良さそうなものですが…。

 

Desktop GL driver の不具合:

いろいろ動作が不安定ですが、大きな不具合も見つかっています。

Desktop GL driver を有効にすると、コンソールでの OpenGL ES/OpenVG アプリケーションが動作しません。ハングアップします。VideoCore 関係のアプリケーションは Desktop GL driver と競合してしまうようです。

Minecraft も動作しません。Minecraft は X11 上で動作するアプリケーションですが、実際にはコンソールの OpenGL ES 描画結果を X11 上にレイヤ合成しているので、OpenGL ES/OpenVG アプリケーションが動作しないのと同じ理由でしょう。

また、スクリーンショットを撮ろうと raspi2png を使ってみましたが、こちらもハングアップします。やはりこちらも VideoCore 関係です。

 

参考資料:

参考までにソフトウェアレンダラーでの glxinfo の結果を示します。

ソフトウェアレンダラーの方は、OpenGL 3.0 になっています。