Использование RenderDoc в Browser
RenderDoc — это инструмент для отладки графики, поддерживающий множественные графические API и платформы разработки. Он используется для захвата и анализа кадров в процессе разработки. RenderDoc показывает, как система запущенного приложения определила, что сцена должна отображаться на оборудовании Meta Quest для отдельного кадра. Эта информация часто может быть использована для поиска возможностей оптимизации и потенциальных источников проблем с результативностью.
Meta поддерживает свой собственный форк RenderDoc. Этот форк предоставляет доступ к низкоуровневым данным профилирования ГП чипа Snapdragon 835 в Quest и Snapdragon XR2 в Quest 2, в частности, к информации из его плиточного средства визуализации.
В этом руководстве вы узнаете, как связать RenderDoc для Meta Quest с Browser для захвата и воспроизведения кадра.
- Скачайте и установите RenderDoc Meta Fork на свой компьютер.
- На устройстве Quest запустите браузер и перейдите по адресу
chrome://flags. - В строке поиска на странице, введите "Image".
- Поставьте флажок Android ImageReader в положение Отключено.
- После смены флажка в нижней части браузера появится баннер. Нажмите кнопку "Перезапустить".
- Дополнительный шаг, если вам нужно работать в иммерсивном режиме:
- В строке поиска на странице, введите "RenderDoc".
- Поставьте флажок Поддержка иммерсивного режима RenderDoc в положение Включено.
- Нажмите кнопку "Перезапустить".
Подключение RenderDoc к Browser для захвата кадра
- На компьютере запустите приложение RenderDoc Meta Fork.
- В нижнем левом углу пользовательского интерфейса RenderDoc нажмите Повторно воспроизвести контекст: (что-нибудь) и выберите Режим профилирования Meta Quest 2.
- В этот момент ваше устройство Quest должно стать черным с тремя белыми точками. Нажмите кнопку главной страницы на контроллере Quest, чтобы вернуться на главный экран.
- На панели Запуск приложения в RenderDoc введите
com.oculus.browser/.PanelActivity в поле Путь к исполняемому файлу и нажмите кнопку запуска. - Браузер должен запуститься с подключенным RenderDoc. Перейдите на страницу и просмотрите изображение, которое нужно захватить, затем используйте приложение RenderDoc на своем компьютере, чтобы захватить кадр.
Если браузер не запускается, вы можете вручную подключить к нему RenderDoc:
- Запустите браузер вручную на устройстве Quest. Вы должны увидеть оврелей RenderDoc поверх браузера.
- В пользовательском интерфейсе RenderDoc выберите меню Файл, а затем нажмите Присоединить к запущенному экземпляру.
- В списке должно появиться com.oculus.browser.
- Выберите com.oculus.browser и нажмите кнопку Подключить к приложению.
После захвата можно захватить дополнительные кадры или сразу открыть кадр в режиме повторного воспроизведения.
Режим повторного воспроизведения
- Вы должны быть по-прежнему подключены к устройству. Если нет, установите гарнитуру Meta Quest как параметр "Повторно воспроизвести контекст". В нижнем левом углу пользовательского интерфейса RenderDoc нажмите Повторно воспроизвести контекст: (что-нибудь) и выберите Режим профилирования Meta Quest 2.
- Для просмотра нажмите два раза на захват. Теперь вы можете повторно воспроизводить захват на графическом процессоре Quest.
- В окне Браузер событий вы можете увидеть каждый вызов отрисовки, который был сделан во время захвата кадра. Нажав на каждый из них, можно просмотреть состояние всего процесса рендеринга на момент вызова.
- На вкладке Просмотрщик текстур показан буфер кадров при нажатии на различные вызовы.
- Он может быть очень темным. Чтобы добавить яркости, переключите кнопку гаммы слева от ярлыка Субресурс, который находится в верхней части панели просмотрщика текстур.
- В целом, рендеринг здесь не совсем точный, но он служит хорошим ориентиром для понимания того, что происходит в каждом вызове отрисовки.
- Попробуйте установить для параметра Наложение значение Сетка Wireframe или Выделить вызов отрисовки, чтобы определить, рендеринг какого объекта выполняется.
- Откройте вкладку Просмотр счетчика производительности и нажмите кнопку Счетчики захвата. Здесь есть множество метрик, в том числе несколько общих и ряд специфических для Meta. Специифические для Meta метрики описаны в статье Метрики вызова отрисовки.
- Сортировка по параметрам Период ГП или Часы — это отличный способ определить самые дорогие вызовы отрисовки в вашей сцене. Это распределение по времени может быть не совсем точным с точки зрения фактической продолжительности рендеринга сцены в каждом кадре, но они точны относительно друг друга. Например, вызов длительностью 1 000 микросекунд стоит примерно в два раза дороже, чем вызов длительностью 500 микросекунд.
- Вы можете сопоставить идентификаторы событий в окне "Просмотр счетчика производительности" с идентификаторами в "Браузере событий".
- На вкладке Состояние процесса показано все состояние графической цепочки операций для любого вызова отрисовки, выбранного в браузере событий. Чтобы просмотреть дополнительную информацию о конкретном этапе, щелкните по различным полям в цепочке.