2013-06-29 126 views
1

我的渲​​染線程有一個無限循環。我嘗試測量,假設每次打電話給eglSwapBuffers繪製一個新的框架,但這是給我的結果像200幀,這是不可能的,對吧?刷新率不能超過60?如何測量使用TextureView的android應用程序的FPS? (使用OpenGL)

現在我正在做同樣的事情,但也使用SurfaceView的surfaceTexture的surfaceTexture.getTimeStamp()。我認爲只有在前一次迭代中返回的時間戳與當前時間戳不一樣時纔會繪製一幀。衡量是否可接受的方法?當我不繪圖時,這顯示50-55fps。即該循環只有eglSwapBuffers()getTimeStamp調用。

回答

0

surfaceTexture.getTimeStamp()似乎給出了正確的結果。我通過將連續的getTimeStamp()調用返回的結果之間的所有差異相加來測試它,它等於代碼運行的總時間。這表示沒有幀被忽視。

我找到的另一個解決方案是this Android app。我不知道它是如何工作的,但它給出了與上述方法大致相同的結果。

相關問題