8

NDKとeglコマンドを使用したAndroidタブレットでのレンダリング時間が非常に短いという問題があります。通話の時間を計りeglSwapBuffers、さまざまな時間がかかり、デバイスのフレームレートを頻繁に超えました。更新と同期することはわかっていますが、それは約60FPSであり、ここでの時間はそれをはるかに下回っています。

スワップの呼び出しの間に発行する唯一のコマンドはですglClearので、問題を引き起こしているのは私が描いているものではないことを私は知っています。フレームレートをクリアするだけでも30FPSに低下します(ただし不安定です)。

同じデバイス上で、Javaの単純なGLプログラムは60FPSで簡単にレンダリングできるため、基本的にハードウェアの問題ではないことがわかります。GLコンテキストを設定するためのAndroidJavaコードを調べましたが、大きな違いはわかりません。また、すべての構成属性で遊んだことがあります。速度をわずかに変更するものもありますが、この恐ろしいフレームレートの低下を変更するものはありません(私が見つけることができます)。

イベントのポーリングが問題にならないようにするために、レンダリングをスレッドに移動しました。そのスレッドはレンダリングのみを行うようになったため、clearとswapを繰り返し呼び出すだけです。遅いパフォーマンスはまだ続きます。

何をチェックすればいいのかわからず、問題が何であるかについての提案を探しています。

4

2 に答える 2

3

この 100% の信頼性に答えるのに十分な情報 (テストしているデバイス、正確な構成など) は実際にはありませんが、この種の動作は通常、ウィンドウとサーフェスのピクセル形式の不一致が原因で発生します。16 ビット (RGB565) 対 32 ビット。

于 2013-07-01T17:03:11.347 に答える