Что означает "FrameTimeNanos" в "Choreographer.FrameCallback"? Время HW_VSYNC или APP_VSYNC?

Я прочитал исходный код DispSync и так далее, но это слишком сложно.

Что я узнал, так это то, что FrameCallback запускается событием APP_VSYNC, которое может иметь временное смещение от HW_VSYNC. Итак, как я могу узнать точное время HW_VSYNC?

Если параметр времени FrameCallback сообщает время APP_VSYNC, где я могу получить значение смещения между HW_VSYNC и APP_VSYNC, чтобы я мог рассчитать время аппаратной синхронизации?

1 ответ

IIRC, временные метки, сообщаемые хореографом, являются APP_VSYNC раз. Как отмечено в комментариях в Grafika's 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() особенность. Смотрите комментарий выше doFrame() для дополнительных заметок.

Другие вопросы по тегам