Начало работы с Android Dynamic Performance Framework (ADPF) в Unreal Engine

Android Dynamic Performance Framework (ADPF) — мощный инструмент от Google для разработчиков, желающих оптимизировать производительность своих приложений. Через свои температурные API ADPF предоставляет в режиме реального времени информацию о температурном состоянии устройства, которая затем используется для настройки параметров графики в приложении.

В исследовательских целях компания Arm разработала демоверсию с использованием Unreal Engine и ADPF, чтобы изучить, как ADPF используется для оптимизации производительности игры.

ADPF отслеживает температурный статус, при этом качество графики соответствующим образом настраивается в игровом движке.

Учитывая разработчиков, цель состоит в том, чтобы позволить пользователям играть в игру дольше, не влияя на игровой процесс и не потребляя слишком много энергии устройством.

Прежде чем начать

Прежде чем рассматривать демо более подробно, важно выделить официальную документацию Google по ADPF . Эта документация является бесценным ресурсом, который содержит подробную информацию и рекомендации по использованию ADPF.

Однако для тех, кто предпочитает настраиваемое обучение, репозиторий примеров ADPF содержит практические примеры реализации ADPF в приложениях Android.

Настройка настроек графики

В контексте Unreal Engine мы можем динамически настраивать параметры графики для поддержания производительности.

Мы использовали монитор теплового состояния и API-интерфейс Thermal Headroom в ADPF для мониторинга теплового регулирования. Затем вы можете настроить параметры качества, такие как качество теней, качество отражений и качество текстур, когда устройство начнет дросселировать.

Следующие настройки качества графики в Unreal Engine используются для изменения различных настроек:

  • ПросмотрРасстояниеКачество
  • ShadowQuality
  • ГлобальныйОсвещениеКачество
  • ОтражениеКачество
  • СглаживаниеКачество
  • ТекстураКачество
  • ВизуальныйЭффектКачество
  • ПостобработкаКачество
  • ЛистваКачество
  • ЗатенениеКачество
  • Общий уровень масштабируемости

Реальное тестирование

Arm создает собственные демо-игры, которые используются для исследования мобильной графики и игровых технологий. В этом году мы протестировали ADPF на одном из них — демо-версии SteelArms.

SteelArms имеет разные уровни интенсивности графики и значительную нагрузку на процессор. Он создан как современные мобильные игры, поэтому мы можем моделировать поведение игры на современных мобильных телефонах. Это также позволяет нам протестировать, как различные технологии могут работать в игре на мобильных устройствах на базе Arm.

Результаты

Рисунок 1. Сравнение полноэкранного режима SteelArms с ADPF и без него.

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

Рисунок 2. Игра с интеграцией ADPF: разделенный экран.

Разделенный экран: самые высокие настройки графики слева (синий робот) и самые низкие настройки графики справа (красный робот).

Рисунок 3. Игра с интеграцией ADPF: параллельное сравнение деталей.
Рисунок 4. Игра с интеграцией ADPF: рядом.

На предыдущих рисунках 3 и 4 можно увидеть один и тот же вид робота рядом. Если присмотреться, можно увидеть настройки графики, настроенные с помощью ADPF. Обратите внимание на пол ринга, плечо робота, веревки ринга и толпу? Кажется, что все они имеют немного более низкое качество, что было сделано с помощью ADPF.

Когда регулирование было неизбежным, эти эффекты были уменьшены в демо-версии SteelArms. Трудно заметить эти небольшие сокращения постобработки и визуальных эффектов. Кроме того, пользователи обычно не замечают их во время игры. Это означает, что вы можете сохранить большую часть визуального восприятия игры, не затрагивая игровой процесс. Вы можете делать все это, сохраняя при этом производительность вашей игры и время автономной работы вашего устройства.

Как упоминалось ранее, в демонстрационных целях мы сравниваем изображения с настройками самого высокого и самого низкого качества. Вот почему разницу все же можно увидеть, если внимательно присмотреться. Однако при уменьшении масштаба во время игры это практически незаметно для пользователя, сохраняя при этом стабильный игровой процесс.

Результаты

Рисунок 5. Сравнение частоты кадров, температуры устройства, теплового состояния и запаса мощности при включении/выключении ADPF. Увеличение частоты кадров примерно на 57 %.

Устройство избегает перегрева и поддерживает температурный запас в пределах 1,0.

Потребляемая мощность

Рис. 6. Сравнение энергопотребления при включенном/отключенном ADPF.

Результаты АДПФ

Результаты включения и выключения ADPF можно увидеть на рисунках, показанных ранее. Показываю, что есть разница в частоте кадров игры, и энергопотреблении ядер. При включении ADPF наблюдается улучшение частоты кадров до 57%. Когда ADPF выключен, графический процессор потребляет значительное количество энергии. Затем у большого ядра ЦП возникают скачки мощности, соответствующие рабочей нагрузке графического процессора. Поскольку он догоняет объем обработки, которую его просят выполнить. Для сравнения, когда ADPF включен, большое ядро ​​ЦП реагирует на регулирование и снижает общее энергопотребление всех ядер устройства.

Заключение

ADPF может значительно улучшить энергопотребление в играх. В конечном итоге это означает более длительное время игры для геймеров, увеличенное время автономной работы и более низкую температуру используемого устройства. С точки зрения разработчика, ADPF поддерживает правильную частоту кадров в игре. Предоставляя им возможность уменьшать настройки качества и при этом предоставляя пользователю отличный игровой опыт.

Новые и старые устройства могут получить выгоду от использования ADPF. Это позволяет играм работать на высоком уровне на устройствах предыдущих поколений без дополнительной работы по оптимизации.