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

フルスペックOpenGLとGLES 3.0 とで比較してみた

EGL使ったものと通常のGLX(OpenGL)とで性能差を感じたので、実験してみたいと思います。
JetsonTK1でEGL使用した場合には、OpenGLES 3.0のコンテキストが使用されます。通常の初期化をGLX経由でした場合には OpenGL 4.4のコンテキストとなります。

これらで同じようにパフォーマンス有利に働くように、頂点バッファ(バッファオブジェクト)、頂点配列オブジェクト(VAO)らを用いて、トーラスを描画するプログラムを作成してみました。
これで平均のフレームレートを計測してみようと思います。

OpenGL 4.4 (GLX) の場合

GL_VERSION = 4.4.0 NVIDIA 19.3
GL_RENDERER = GK20A/AXI
36075 frames in 30.0 seconds = 1202.478 FPS
30672 frames in 30.0 seconds = 1022.298 FPS
31040 frames in 30.0 seconds = 1034.529 FPS
30626 frames in 30.0 seconds = 1020.849 FPS
31759 frames in 30.0 seconds = 1058.631 FPS

OpenGLES 3.0 (EGL) の場合

R:8, G:8, B:8, A:8, Depth:24
GL_VERSION = OpenGL ES 3.0 19.3
GL_RENDERER = GK20A/AXI
7293 frames in 30.0 seconds = 243.029 FPS
5748 frames in 30.0 seconds = 191.589 FPS
5741 frames in 30.0 seconds = 191.364 FPS
6332 frames in 30.0 seconds = 211.061 FPS
5015 frames in 30.0 seconds = 167.141 FPS
6324 frames in 30.0 seconds = 210.780 FPS
5463 frames in 30.0 seconds = 182.089 FPS

まとめ

通常GLのほうが、およそ5倍のFPSとなっていました。
あまりCPUで処理をしていないので、描画系に何か違いがありそうです。
EGLのほうではダブルバッファのフラグが見当たらなかったこともあって、設定など特にしていませんがこれが影響しているかも。
 またフレームレートが安定しないボードだったので、可変フレームレートで描画するようにしてみました。見かけの速度が一定となると、多少変動したところで見栄えが悪くなることはないのできれいに見えます。処理が遅くて安定しない環境では、可変フレームレートで描画するようなプログラムもいいなと感じました。

ubuntu-screenshot-torus

OpenGLプログラミング
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました