“FrameTimeNanos”在“Choreographer.FrameCallback”中的含义是什么? HW_VSYNC时间或APP_VSYNC时间?

时间:2017-08-16 09:34:30

标签: android vsync surfaceflinger

我已经阅读了DispSync的源代码等等,但它太复杂了。

我所学到的是“FrameCallback”由APP_VSYNC事件触发,该事件可能与HW_VSYNC有时间偏移。那么,我怎么知道HW_VSYNC的准确时间?

如果FrameCallback的time参数告诉APP_VSYNC时间,我在哪里可以获得HW_VSYNC和APP_VSYNC之间的偏移值,这样我可以计算硬件vsync时间?

1 个答案:

答案 0 :(得分:0)

IIRC,编舞者报告的时间戳是APP_VSYNC次。正如Grafika的ScheduledSwapActivity:

中的评论所述
* We coordinate with the display refresh using Choreographer.  The SurfaceFlinger DispSync
* enhancements may cause the Choreographer-reported vsync time to be offset from the
* actual-reported vsync time (which may itself be slightly offset from the actual-actual
* vsync time).  None of this is terribly important unless you care about A/V sync.

如果您的目标是A / V同步,则应该使用setPresentationTime()功能。有关其他说明,请参阅comment above doFrame()