< strong>Проблема: Когда я включаю тройную буферизацию, игра Unity работает со скоростью 30 кадров в секунду. Однако когда я переключаюсь на двойную буферизацию, FPS падает примерно до 20-23. Я знаю, что тройная буферизация вводит дополнительный буфер, который может увеличить задержку, и я бы предпочел использовать двойную буферизацию для поддержания более низкой задержки. Однако значительное падение FPS при двойной буферизации является проблематичным.
Цель: Я хочу изменить код SurfaceFlinger в AOSP (проект Android с открытым исходным кодом), чтобы включить тройную буферизацию, но сразу же компоновать последний буфер, поставленный в очередь приложением, аналогично тому, как ведет себя двойная буферизация. Это позволило бы мне поддерживать целевой FPS без дополнительной задержки, обычно связанной с тройной буферизацией.
Вопрос:
- Может ли кто-нибудь объяснить, почему такое падение FPS происходит при
двойной буферизации по сравнению с тройной буферизацией в играх Unity? [Имейте в виду, что приложению требуется всего 2 мс для рендеринга кадра, что означает, что все вызовы gl со стороны приложения завершаются за 2 мс] - В коде SurfaceFlinger, где мне следует внести изменения чтобы гарантировать, что
последний буфер составляется, как только очередьBuffer вызывается
приложением, даже если тройная буферизация включена?
Подробнее здесь: https://stackoverflow.com/questions/790 ... urfaceflin