决定是否还需要HW_VSYNC的输入, 如果不需要, 就会将HW_VSYNC关掉....在SurfaceFlinger::postComposition()里, 会将PresentFence的时间通过addPresentFence交给DispSync,来检查SW_VSYNC是否需要校正,...();
}
}
…..
}
DispSync是利用HW_VSYNC和PresentFence来判断是否需要开启HW_VSYNC.HW_VSYNC 最少要3个, 最多是32个, 实际上要用几个则不一定...不然会继续开启HW_VSYNC计算SW_VSYNC的值, 直到误差小于threshold.其计算的方法是DispSync::updateModelLocked()....基本思想如下,
计算目前收到HW_VSYNC间隔, 取平均值(AvgPeriod) HW_VSYNC
将每个收到的VSYNC时间与AvgPeriod算出误差.