Измерение эффекта eglPresentationTimeANDROID()

Я отлаживаю C++ видео рендерер, который использует eglPresentationTimeANDROID() улучшить бубенцы. Это расширение egl доступно не на всех протестированных мною устройствах, но для некоторых (например, adreno) его необходимо отключить вручную - в противном случае поток застревает. Я понимаю, что некоторые устройства фактически игнорируют PTS (см. Отметку времени Android Native Window).

Недавно я столкнулся с большим количеством устройств (довольно экзотических), которые выходят из строя при включении этой функции, и я рассматриваю возможность его отключения вообще. Но чтобы принять это решение, я хочу измерить эффект от этого PTS, прежде чем я решу от него избавиться.

1 ответ

Решение

Обычно единственный способ увидеть расширение, имеющее какой-либо эффект, - это использовать systrace для отслеживания вывода чего-то вроде " запланированного свопа" Графика (который был создан для этой цели). Нет причин застревать в потоке, по крайней мере, в источниках AOSP; Я не знаю, какой код мог быть добавлен OEM.

Логика во время рендеринга должна быть:

  • Если желаемое время представления для кадра уже прошло, и нет другого готового кадра для текущего слота дисплея, покажите его;
  • Если желаемое время представления прошло, и есть еще один кадр, готовый к следующему слоту дисплея, отбросьте его;
  • Если желаемое время презентации в ближайшем будущем, держите его пока;
  • Если желаемое время презентации составляет больше секунды, покажите его сейчас.

Плохо сформированные значения PTS должны показывать паузу не более секунды. Отметки времени используют монотонные часы, поэтому не подлежат обновлению часов.

Нет необходимости использовать эту функцию, если вы можете отлично справляться с передачей видеокадров. Смысл расширения заключался в том, чтобы облегчить приложениям синхронизацию. Цель состояла в том, чтобы использовать его в системных проигрывателях видео для улучшения синхронизации, но я не знаю, произошло ли это на самом деле. (Я не вижу его в источниках AOSP.)

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