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 回答