Android 显示 VSYNC 信号非常不稳定

Android display VSYNC signal is highly erratic

我正在调查 Android 应用程序中的丢帧问题。它们是不规则的,平均每秒发生一次。我已将有问题的渲染器配对回一个非常简单的着色器,我相信帧渲染时间很短。

当我 运行 系统跟踪时,我可以看到丢帧的情况,但原因似乎是 HW_VSYNC_0 信号偶尔无法翻转(即它停留在 0 或 1半个周期)。我的理解(来自 )是这个时钟来自显示硬件,因此应该是规律的。

VSYNC-sf 信号无论如何都会继续,尽管它偶尔也会翻转,大概是在拼命尝试恢复同步。

我的问题:这是预期的行为吗?是什么导致了它的发生?

虽然我无法准确解释各种同步信号的不稳定行为,但我最终确定我潜在的卡顿是由 OS 级别的过度功率控制引起的。 CPU 时钟似乎逐渐下降,直到帧渲染时间超过刷新时间,然后某些东西(可能无关)将 CPU 时钟踢回最大值。