Разработка
Разработка
Выберите платформу

Дисплей производительности на гарнитуре

OCULUS RIFT DOCUMENTATION
Этот раздел посвящен разработке под Oculus Rift с SDK для ПК. Подробнее об оптимизации производительности для приложений Meta Quest на разных платформах см. в следующих статьях:
Дисплей производительности на гарнитуре позволяет вам или вашим пользователям просматривать информацию о производительности приложений, созданных с помощью SDK.
Экраны этого дисплея отрисовываются компоновщиком, что позволяет отображать их с помощью одного вызова SDK ovr_EndFrame. В инструменте отладки Oculus или OculusWorldDemo вы можете переключиться между экранами дисплея производительности нажатием клавиши F11.

Сводная информация о производительности

В окне свободной информации на дисплее производительности отображается частота кадров приложения и доступная неиспользованная производительность оборудования. Этот дисплей можно использовать для настройки симуляции и графической достоверности приложения. Поскольку пользователь не может отключить V-Sync, его можно использовать для оценки производительности вместо счетчика частоты кадров. Он также полезен для устранения неполадок, связанных с приложением или настройкой оборудования.
На следующем изображении показан экран сводной информации дисплея производительности:
В следующей таблице описаны все метрики:
МетрикаОписание
App Motion-to-Photon Latency
Задержка с момента, когда приложение запросило последнюю прогнозируемую информацию об отслеживании с помощью функции ovr_GetTrackingState(), до момента, когда средняя строка сканирования целевого кадра высветилась на дисплее. Эта же информация предоставляется на экране времени задержки.
Unused performance
Эта функция помогает пользователю убедиться, что компьютер поддерживает достаточную производительность, чтобы избежать пропуска кадров, и показывает процент доступной производительности компьютера, не используемой приложением и компоновщиком. Этот показатель рассчитывается путем деления времени ЦП и ГП, отслеживаемого на экране времени рендеринга приложения, на собственное время кадра (обратное частоте обновления) гарнитуры. Примечание. Когда загрузка ГП приближается к 100 %, адаптивное опережение очереди будет выбирать более раннюю точку начала рендеринга. Если эта точка начала накладывается на процесс компоновщика в предыдущем кадре, производительность будет скачкообразной. Если вы начнете снижать загрузку, график покажет первоначальное падение, а затем станет более линейным.
Application Frames Dropped
Увеличивается каждый раз, когда приложение не успевает задать новый слой с помощью ovr_EndFrame до выполнения компоновщика перед каждой V-Sync (вертикальной синхронизацией). Идентично количеству неудачных попыток отправки приложения на экране времени рендеринга приложения.
Compositor Frames Dropped
Увеличивается каждый раз, когда компоновщику не удается представить новый отрисованный кадр во время V-Sync (вертикальной синхронизации). Идентично количеству пропущенных V-Sync компоновщика на экране времени рендеринга компоновщика.

Время задержки

В окне времени задержки отображаются графики App to Mid - Photon, Timewarp to Photon - Start и Timewarp to Photon - Start graphs.-->
На следующем скриншоте показан экран времени задержки:
В следующей таблице описаны все метрики:
МетрикаОписание
App Tracking to Mid-Photon
Задержка от момента, когда приложение вызвало ovr_GetTrackingState() до момента, когда целевой кадр в конечном итоге был показан (т. е. подсвечен) на дисплее HMD.
TimeWarp to Mid-Photon
Задержка от момента, когда последняя прогнозируемая информация об отслеживании подается на ГП для выполнения TimeWarp, до момента, когда средняя строка сканирования целевого кадра высвечивается на дисплее гарнитуры.
Flip to Photon - Start
Разница во времени с момента представления заднего буфера на гарнитуре до момента, когда первая сканирующая линия целевого кадра высвечивается на дисплее гарнитуры.

Время рендеринга приложения

На экране времени рендеринга приложения отображается информация о времени рендеринга, характерная для конкретного приложения.
На следующем скриншоте показан экран времени рендеринга приложения:
В следующей таблице описаны все метрики:
МетрикаОписание
App Missed Submit Count
Увеличивается каждый раз, когда приложение не успевает задать новый слой с помощью ovr_EndFrame до выполнения компоновщика и перед каждой V-Sync (вертикальной синхронизацией).
App Frame-rate
Частота, с которой рендеринг приложения вызывает ovr_EndFrame. Она никогда не будет превышать собственную частоту обновления гарнитуры, поскольку вызов ovr_EndFrame ограничивает выполнение приложения центральным процессором по необходимости.
App Render GPU Time
Общее время ГП, затраченное клиентским приложением на рендеринг. Сюда входит работа, выполненная приложением после возврата из ovr_EndFrame, с использованием зеркальной текстуры, если это применимо. Оно также может содержать "пузыри" командного буфера ГП, если поток ЦП приложения не передает данные на ГП достаточно быстро, чтобы он оставался занятым. Аналогично, если приложение использует ГП почти полностью, работа над следующим кадром (N+1) может упреждаться работой компоновщика по рендерингу текущего кадра (N). В зависимости от того, как работает запрос времени ГП приложения, это может привести к искусственному завышению времени ГП приложения, поскольку оно будет включать в себя время использования ГП компоновщика.
App Render CPU Time
Разница во времени, когда приложение продолжило выполнение на ЦП после того, как ovr_EndFrame вернул последующий вызов ovr_EndFrame. Если тестировщик задержек работает не так, как ожидалось (например, дисплей гарнитуры находится в спящем режиме из-за длительного бездействия), эта метрика будет иметь значение N/A (Недоступно). Сюда входят накладные расходы на IPC-вызовы к компоновщику после вызова ovr_EndFrame клиентским приложением.
 

Время рендеринга компоновщика

На экране времени рендеринга компоновщика отображается информация о времени рендеринга для компоновщика среды выполнения. Компоновщик применяет искажение и TimeWarp к многослойным текстурам глаз, предоставленным VR-приложением.
На следующем скриншоте показан экран времени рендеринга компоновщика:
В следующей таблице описаны все метрики:
МетрикаОписание
Compositor Missed V-Sync Count
Увеличивается каждый раз, когда компоновщику не удается представить новый отрисованный кадр во время V-Sync (вертикальной синхронизации).
Compositor Frame-rate
Частота конечной компоновки. Не зависит от частоты рендеринга клиентского приложения. Поскольку компоновщик всегда привязан к V-Sync, это значение никогда не превысит собственную частоту обновления гарнитуры. Однако если компоновщик не успевает вовремя завершать новые кадры, это значение может упасть ниже собственной частоты обновления.
Compositor GPU Time
Время, затрачиваемое ГП на выполнение рендеринга компоновщика. Сюда входит TimeWarp и искажение всех слоев, представленных приложением. На время работы ГП могут влиять количество активных слоев, их разрешение и запрашиваемое качество сэмплирования.
Comp Gpu-End to V-Sync
Время между моментом, когда ГП завершает рендеринг компоновщика, и моментом, когда включается V-Sync и буфер начинает сканирование на гарнитуре.

Статистика асинхронного искажения пространственно-временной шкалы

На экране статистики асинхронного искажения пространственно-временной шкалы отображается статистика активности и отслеживания ASW, который работает как часть компоновщика среды выполнения. ASW автоматически активируется, когда приложение не может обеспечить требуемую собственную частоту кадров для подключенной гарнитуры. После активации ASW заставляет приложение работать с половиной обычной частоты кадров, экстраполируя каждый второй кадр. Это дает приложению больше времени для завершения своей работы.
На следующем скриншоте показан экран ASW:
В следующей таблице описаны все метрики:
МетрикаОписание
ASW Status
Доступность и текущее состояние ASW. Значение Not Available (Недоступно) может быть связано с ОС и (или) типом ГП, используемого на ПК. Значение Available - Not Active (Доступно — неактивно) означает, что приложение успешно поддерживает требуемую собственную частоту обновления, поэтому ASW не активируется.
ASW Active-Toggle Count
Отслеживает, сколько раз ASW активировалось за время работы гарнитуры.
ASW Presented-Frame Count
Отслеживает количество отображенных кадров, экстраполированных ASW. Когда ASW активно, приложение вынуждено работать на половинной скорости, поэтому для гарнитур с частотой обновления 90 Гц это значение должно увеличиться на 45 кадров в секунду.
ASW Failed-Frame Count
Отслеживает количество экстраполированных кадров, которые ASW нужно было отобразить, но не удалось подготовить вовремя. Это может произойти по разным причинам, но может быть вызвано борьбой за ресурсы ОС или превышением возможностей системы.

Информация о версии

В этом окне отображается информация о гарнитуре и версии SDK, которая использовалась для создания приложения.
На следующем скриншоте показан экран информации о версии:
В следующей таблице описана вся информация:
ИмяОписание
OVR SDK Runtime Ver
Версия установленной среды выполнения. Все VR-приложения, использующие OVR SDK, начиная с версии 0.5.0, используют эту среду выполнения.
OVR SDK Client DLL Ver
Версия SDK, на основе которой было скомпилировано клиентское приложение.
HMD Type
Тип гарнитуры.
HMD Serial
Серийный номер гарнитуры.
HMD Firmware
Версия установленной микропрограммы гарнитуры.
Sensor Serial
Серийный номер датчика положения.
Sensor Firmware
Версия установленной микропрограммы датчика положения.
Была ли эта страница полезной?
Значок "Большой палец вверх"
Значок "Большой палец вниз"
Логотип навигации
Русский
© 2025 Meta