2016-05-20 8 views
0

私は単純なOpenGLメディアプレイヤーアンドロイドアプリケーションを使用しています。 onDrawFrame関数には、glFinish関数呼び出しがあります。 Adreno Profilerでそのコールにコメントすると、ある程度の再生時間後(約20分後)にFPSが低下します。コメントされていない場合、FPSはドロップされません。なぜそうなの?glFinishとFPS

答えて

1

時間がたった後に起こるという事実は、おそらく環境(すべてが等しい)を意味します。私はそれがおそらく過熱していると仮定し、熱スロットリングキックで、 glFinishがそのまま残り、パイプラインが排水されているため、GPUは冷却される可能性があります。

+0

@ Isogen74:ありがとうございます。 glFinishを追加すると、私の問題は解決しました。さて、私はシェイダーがもっと忙しい別のアプリを持っています。 glFinishを追加しても問題は解決しませんでした。 FPSは20分後に低下した。しかし、いくつかのglGetErrorチェックを追加するといくらか進歩しました。 FPSは1時間かけて落ちなくなり、再び落ちました。この環境問題の解決策はありますか? – deeps8us

+1

これは本当の意味ではありません。チップがチップ自体を損傷するのを止めるために、電話機のサーマルリミッタです。密閉されたプラスチック製の箱からファンを外して熱を得るのは難しいです。 一般に、アプリケーションを最適化するだけで、GPUをすばやく実行したり、冷却時間を短縮したり、動作電圧を低くする必要はありません。 – solidpixel