Инструмент "Метрики OVR": рекомендации по использованию для специалистов без инженерного опыта
Инструмент "Метрики OVR" используется для измерения производительности любого приложения, работающего на оборудовании Quest. В основном, инструмент применяется для определения частоты кадров ваших приложений в соответствии с VRC. Также он предоставляет расширенные возможности отслеживания, позволяя разработчикам более точно выявлять и устранять проблемы с производительностью.
На вкладке Settings (Настройки) выберите Enable Persistent Overlay (Включить постоянный оверлей), чтобы график производительности отображался поверх тестируемого приложения.
В разделе Quick-set Enabled Stats доступны три предустановки для отслеживания: None (Нет), Basic (Базовое) и Advanced (Расширенное). При отслеживании метрик избегайте использования Advanced и выбирайте Basic. Режим Advanced добавляет дополнительную нагрузку и может исказить итоговые результаты производительности. Его следует использовать только для выявления узких мест ГП в отдельных случаях. Advanced не нужен для проверки производительности в соответствии с VRC.
Ключевые метрики:
- FPS — частота кадров в секунду
- App T — время обработки ГП приложением
Метрика App T показывает среднее время между временными метками, за которое приложение обрабатывает графику для генерации кадра.
Инструмент "Метрики OVR" может сохранять данные в формате CSV. Чтобы сохранить данные, включите опцию Record all captured metrics to CSV file (Запись всех полученных метрик в файл CSV) в инструменте, а после игрового сеанса перенесите файл на свой ПК.
Вы также можете записывать данные в несколько CSV-файлов за один сеанс. Например, если вы запускаете три игры подряд, при подключении Quest к ПК вы получите три отдельных CSV-файла для каждого запуска. Используя Excel, вы можете построить диаграмму рассеяния, сопоставив метрику average_frame_rate с timestamp, как показано ниже.
Ось X: метка времени в миллисекундах (разделите значение на 1000, чтобы перевести в секунды). Пример выше отображает сеанс длиной чуть более 10 минут. Каждая точка представляет среднюю частоту кадров за период между предыдущей меткой времени и текущей.
Если приложение находится на стадии разработки, рекомендуется пройти уровень один раз после новой установки, прежде чем оценивать производительность этого контента. Компиляция шейдеров происходит только при первом запуске приложения. Это может добавить единовременную нагрузку и исказить результаты. После компиляции данные сохраняются на устройстве до переустановки. Таким образом, для более точных результатов повторно пройдите тот же уровень, начиная со второго запуска.
Обратите внимание на загрузку уровней
Обратите внимание на моменты, когда уровни загружаются впервые, так как это обычно проявляется в виде низкой частоты кадров в вашем CSV-файле.
Аналогичным образом инженер может настроить инструмент для вывода пользовательских данных разработчика в CSV-файл, чтобы отметить ключевые переходы между сценами. Это позволяет точно отслеживать производительность в нужные моменты. Подробнее см. в разделе "Добавление строки отладки CSV" руководства
Мониторинг производительности с помощью инструмента "Метрики OVR".
"Приложение должно работать с допустимой частотой обновления и поддерживать скорость рендеринга (кадры/с) не менее 60 кадров/с:
- Приложения должны поддерживать частоту рендеринга не менее 60 кадров в секунду.
- Интерактивные приложения должны использовать частоту обновления 72, 80, 90, 96, 100 или 120 Гц (частоты 96, 100 и 120 Гц доступны не на всех устройствах).
- Мультимедийные приложения могут использовать частоту обновления 60 Гц на устройствах, которые ее поддерживают (эта функция доступна не на всех устройствах).
Приложение не должно испытывать длительные периоды использования частоты кадров ниже запрашиваемой частоты обновления дисплея. Существуют исключения, в том числе моменты, когда экран черный или загружаются сцены."
Для приложения, работающего на Quest (с заданной частотой обновления 72 Гц), возможно небольшое падение производительности (например, до значений > 65 кадров в секунду) в течение нескольких секунд при быстром восстановлении. Допустимы только единичные инциденты. Они не должны быть систематическими или повторяющимися циклично.
Между результатами, отображаемыми в оверлее, и тем, что пользователь видит на экране в реальном времени, есть задержка в одну секунду. Поэтому, если вы заметили падение графика до красного уровня, полезно учитывать, что на экране происходило за секунду до этого момента, а не то, что происходит в момент наблюдаемого падения.
- Снижение производительности часто наблюдается на черных экранах или во время загрузки сцен. Когда игра выходит из переходного экрана, график производительности может всё ещё отображать красный уровень. Однако при оценке возможных проблем с соблюдением требований учитывайте вышеупомянутую задержку в одну секунду.
Определение узкого места в производительности ЦП или ГП
Значение App T указывается в микросекундах. Например, значение 6 000 означает, что работа завершается за 6 миллисекунд. Бюджет на кадр зависит от целевой частоты обновления приложения:
- 72 Гц: 13 888 мкс (≈13,9 мс);
- 90 Гц: 11 111 мкс (≈11,1 мс);
- 120 Гц: 8333 мкс (≈8,3 мс)
Если App T превышает бюджет для целевой частоты обновления, это указывает на то, что часть кадра ограничивается производительностью графического, а возможно и центрального процессора. Если приложение Т не достигает бюджета, а частота кадров по-прежнему ниже целевой, это указывает на узкое место в производительности ЦП. Определение узких мест в определенных ситуациях может быть очень полезным.
Итак, при 72 Гц:
- Значения App T > 13888 мкс и FPS < 72 указывают на ГП как на узкое место (возможно, ЦП также выходит за пределы бюджета, но это скрыто из-за задержек на ГП).
- Если App T < 13888 мкс и FPS < 72, значит, узким местом является ЦП.
При 90 Гц:
- Значения App T > 11111 мкс и FPS < 90 указывают на ГП как на узкое место (возможно, ЦП также выходит за пределы бюджета, но это скрыто из-за задержек на ГП).
- Если App T < 11111 мкс и FPS < 90, значит, узким местом является ЦП.
При 120 Гц:
- Значения App T > 8333 мкс и FPS < 120 указывают на ГП как на узкое место (возможно, ЦП также выходит за пределы бюджета, но это скрыто из-за задержек на ГП).
- Если App T < 8333 мс и FPS < 120, значит, узким местом является ЦП.