1

レンダリング スレッドに無限ループがあります。を呼び出すたびに新しいフレームが描画されると仮定して測定してみeglSwapBuffersましたが、200 fps のような結果が得られます。これは不可能ですよね? リフレッシュ レートは 60 を超えることはできませんか?

今、私は同じことをしていますsurfaceTexture.getTimeStamp()が、SurfaceView の surfaceTexture も使用しています。前の繰り返しで返されたタイムスタンプが現在のものと同じでない場合にのみ、フレームが描画されたと見なします。許容できる測定方法ですか?描画をしていないとき、これは50-55fpsを示しています。つまり、ループにはeglSwapBuffers()getTimeStamp呼び出しのみがあります。

4

1 に答える 1

0

surfaceTexture.getTimeStamp()正しい結果が得られているようです。連続した呼び出しによって返された結果のすべての違いを合計してテストしたところgetTimeStamp()、コードが実行された合計時間に等しくなりました。これは、考慮されていないフレームがないことなどを示します。

私が見つけた別の解決策は、この Android アプリ です。どのように機能するかはわかりませんが、上記の方法とほぼ同じ結果が得られます。

于 2013-08-19T10:19:17.963 に答える