我想更好地了解安卓显示子系统,但仍有一个让我困惑的问题是如何处理VSYNC信号,以及为什么首先存在这么多信号。
安卓设计在其核心使用VSYNC,但有多个VSYNC信号可供选择。通过https://source.android.com/devices/graphics/implement.html中的“VSYNC Offset”部分,有一个流程图,其中说明了三个VSYNC信号:HW_VSYNC_0、VSYNC和SF-VSYNC。我知道HW_VSYNC用于更新DispSync中的时序,而VSYNC和SF-VSYNC由应用程序和surfaceflinger使用,但为什么需要这些单独的信号呢?此外,这些信号的偏移量如何影响它们?是否有可用的时间图能够更好地解释这一点呢?
感谢您提供的任何帮助。
RUNNING_WITHOUT_SYNC_FRAMEWORK
是单独但相关的——它指的是图形文档中“显式同步”部分所描述的栅栏系统。例如,Nvidia tegra3板设置了这个参数,如https://android.googlesource.com/device/asus/grouper/+/lollipop-release/BoardConfigCommon.mk。他们使用了较旧的“隐式同步”方法,不过现在可能已经修复了。 - fadden