5

我正在调查我的 Android 应用程序中的丢帧现象。它们是不规则的,平均大约每秒发生一次。我已将相关渲染器与一个非常简单的着色器配对,并且我确信帧渲染时间很短。

当我运行 systrace 时,我可以看到丢帧的样子,但原因似乎是 HW_VSYNC_0 信号偶尔无法翻转(即它在半个周期内保持在 0 或 1)。我的理解(来自这个答案)是这个时钟来自显示硬件,因此应该是常规的。

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

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

系统跟踪截图

4

1 回答 1

0

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

于 2017-12-20T12:05:20.047 回答