2

Android での OpenGL ES 2.0 アプリケーションが不安定な理由を理解しようと、かなりの数日間苦労してきました。1 秒あたりのフレーム数は非常に高く、通常は一貫して 60 fps を維持しますが、ゲームはスムーズではないようです。タイムステップ (OpenGL ES 1.0 を使用しても同じアプリケーションが正常に動作する) などの単純な問題を除外し、数学とフレームのオーバーロード (アプリケーションは単純な回転三角形に縮小されます) を除外した後、OpenGL Trace に出会いました。

OpenGL トレースで何が起こっているのかを正確に説明する情報が見つかりません。だから私はここで少し暗闇の中にいますが、glClear (マスク = 256) 関数が 2,533,190 ナノ秒のウォール時間とわずか 61,040 ナノ秒のスレッド時間を取るなどの奇妙な動作を見ています。これが一度発生すると、数フレームの間すべてが正常になります。

別の例は glDrawElements です。274,684 ナノ秒の壁時間、61,040 スレッド時間。

これは、Trace 内の情報を理解するための試行錯誤のアプローチにより、スローダウンの原因となっている何かがフードの下で起こっていることを示唆している可能性があります。

それは実際に何を示唆していますか?標準または奇妙な動作?奇妙な場合、その行動の原因のいくつかは何ですか?

もしよろしければ、私が Trace で見ているものを理解できるように、誰か情報を教えていただけないでしょうか。

私は最善を尽くしており、アプリケーションの作業に戻りたいと思っています. 読んでくれてありがとう。

4

0 に答える 0