在调查的游戏口吃问题,我发现bewteen eglSwapBuffer()从游戏和postFramebuffer()在SurfaceFlinger的,总有“SurfaceView”延迟0.5ms的,从到10ms,这似乎很随机的,不相关的CPU负载持续。 这究竟是什么代表? 它有什么用显示器的VSYNC点?
http://i.stack.imgur.com/n8MvG.png
在调查的游戏口吃问题,我发现bewteen eglSwapBuffer()从游戏和postFramebuffer()在SurfaceFlinger的,总有“SurfaceView”延迟0.5ms的,从到10ms,这似乎很随机的,不相关的CPU负载持续。 这究竟是什么代表? 它有什么用显示器的VSYNC点?
http://i.stack.imgur.com/n8MvG.png
该行表示BufferQueue。 (在微量的可见部分中0或1)的元件的高度表示多少缓冲区存在于队列中。
在这种情况下,它正在你的SurfaceView表面呈现的图形缓冲区队列。 当你的应用程序调用eglSwapBuffers()
它提交一个缓冲区队列。 当SurfaceFlinger的一个VSYNC信号醒来时,它锁存从队列缓冲区(如果可用),和复合材料为它下一次刷新。
更新:BufferQueues及其用途进行了详细描述这里 。 附录C中提到他们的systrace外观。