NDKとeglコマンドを使用したAndroidタブレットでのレンダリング時間が非常に短いという問題があります。通話の時間を計りeglSwapBuffers
、さまざまな時間がかかり、デバイスのフレームレートを頻繁に超えました。更新と同期することはわかっていますが、それは約60FPSであり、ここでの時間はそれをはるかに下回っています。
スワップの呼び出しの間に発行する唯一のコマンドはですglClear
ので、問題を引き起こしているのは私が描いているものではないことを私は知っています。フレームレートをクリアするだけでも30FPSに低下します(ただし不安定です)。
同じデバイス上で、Javaの単純なGLプログラムは60FPSで簡単にレンダリングできるため、基本的にハードウェアの問題ではないことがわかります。GLコンテキストを設定するためのAndroidJavaコードを調べましたが、大きな違いはわかりません。また、すべての構成属性で遊んだことがあります。速度をわずかに変更するものもありますが、この恐ろしいフレームレートの低下を変更するものはありません(私が見つけることができます)。
イベントのポーリングが問題にならないようにするために、レンダリングをスレッドに移動しました。そのスレッドはレンダリングのみを行うようになったため、clearとswapを繰り返し呼び出すだけです。遅いパフォーマンスはまだ続きます。
何をチェックすればいいのかわからず、問題が何であるかについての提案を探しています。