为什么运行GLSurfaceView的程序最多为60 FPS

时间:2018-10-18 12:40:43

标签: android opengl-es

我尝试在Android上运行高帧速的opengl程序。它不超过60 FPS。

但是在GLTextureView中运行的是400多个FPS。 https://gist.github.com/eleventigers/9545428

据我所知, SurfaceView 的效率远高于 TextureView 。如何设置GLSurfaceView的最大fps。或使用OpenGL编写自定义SurfaceView。

1 个答案:

答案 0 :(得分:0)

在Android上,您无法禁用屏幕垂直同步,因此屏幕上显示的所有内容均不得超过60FPS(因为屏幕的刷新频率为60Hz,也许某些Android手机的刷新率更高,但例外)。 / p>

可能可以通过使用自定义ROM禁用Vsync,但是您不能强迫用户使用这些ROM,并且可能会出现屏幕撕裂的现象,反而看起来还是不好的。

当您使用GLTextureView报告400 FPS时,似乎测量的是渲染到屏幕外GL纹理所需的时间...因此,您当然可以在屏幕外纹理中以很高的速率进行渲染,但是您无法以屏幕上超过60FPS(意味着多余的帧将被跳过且从不显示)