Skip to content

Latest commit

 

History

History
97 lines (59 loc) · 12.2 KB

renderer-diagnostics.ru.md

File metadata and controls

97 lines (59 loc) · 12.2 KB

Диагностика рендеринга моделей

Английская версия | Рендерер Studio | Сценарии проверки

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

Выбор рендерера

r_studio_shader 1
r_studio_materials 1
r_studio_queue 1
r_studio_info

r_studio_shader 1 включает рендерер Studio в NextClient; требуется OpenGL 3.3 compatibility. Значение 0 возвращает штатный рендерер. r_studio_materials 1 включает пользовательские материалы. При значении 0 модели по-прежнему рисует NextClient, но без этих материалов. Обе настройки по умолчанию равны 1.

r_studio_queue 1 позволяет группировать модели при отрисовке. Значение 0 отключает очередь и используется для сравнения. По умолчанию очередь включена. Некоторые модели рисуются отдельно независимо от этой настройки, поэтому результат проверяется по счетчикам и времени CPU/GPU.

r_studio_info выводит сведения о последней модели, используемом рендерере и группировке моделей. Если модель рисует штатный движок, диагностика помогает определить причину. Для повторяемой проверки используйте одну сцену, например комнату с повторяющимися моделями на studio_test, и сохраняйте положение камеры и настройки.

Измерение производительности

cl_perf_batch 1 показывает, сколько вызовов рисования удалось объединить. cl_perf_batch 2 дополнительно измеряет время операций CPU. Панель работает и при cl_perf 0; cl_perf_batch 0 скрывает ее. Значения суммируются по последним завершенным кадрам, не более чем по восьми.

ms/frame показывает среднее время операции за кадр, us/call показывает среднее время одного вызова, а Calls total показывает число вызовов за указанные кадры. Top detail обозначает самую медленную из подробно измеренных операций.

cl_perf 3
perf_dump

perf_dump сохраняет подробные измерения следующего завершенного кадра. На уровнях батчинга 0 и 1 подробные измерения CPU включаются только для этого запроса, если Tracy не подключен. На уровне 2 они выполняются постоянно. При выключенном основном мониторе запрос не включает измерения GPU.

Счетчик Что показывает
Studio shader submissions Число обращений к рендереру NextClient для отрисовки частей моделей.
Studio engine submissions Число обращений к штатному рендереру.
Studio draw calls Число вызовов рисования графического API.
Studio constituent draws Число отдельных частей моделей или экземпляров, объединенных в этих вызовах.
Studio triangles Число треугольников выбранных частей моделей.

r_studio_rigid_stats [reset] показывает накопленные счетчики группировки повторяющихся моделей, объем переданных данных и причины, по которым модели пришлось рисовать отдельно. Аргумент reset сбрасывает счетчики. Порядок сравнения описан в процедуре проверки повторяющихся моделей.

Меньшее число вызовов не гарантирует роста FPS. Сравнивайте время CPU/GPU на одной сцене, с одинаковыми материалами и настройками монитора. Подробности чтения панели приведены в руководстве по монитору.

Измерение затрат на эффекты

В сборке с профилированием Tracy показывает участок ProjectBounds: расчет области экрана, которую занимают эффекты материала. Отдельной строки во встроенном мониторе у этого измерения нет.

Подготовьте сборку по инструкции Tracy, подключите просмотрщик и воспроизведите сцену с эффектами. Проверьте наличие ProjectBounds в записи. При USE_PROFILER=OFF это измерение недоступно.

Запись профилировщика сама влияет на производительность. Итоговый FPS сравнивайте с выключенными профилированием и записью этапов рендеринга, на одном демо, с одинаковыми настройками и предварительным прогоном для загрузки ресурсов.

Запись этапов рендеринга при воспроизведении демо

Выполните r_studio_phases_start <name> [first_demo_frame last_demo_frame] перед timedemo. Номера первого и последнего кадров входят в записываемый диапазон. После воспроизведения выполните r_studio_phases_stop, затем r_studio_phases_export [name].

r_studio_phases_status показывает, идет ли запись, сколько результатов сохранено и достигнут ли предел памяти. Загрузка карты до начала записи не отменяет запрос. Смена игровой сессии или перезапуск графики после начала записи останавливают сбор, сохраняя полученные данные. Запись с complete=0 содержит незавершенное измерение.

Если достигнут предел памяти, сбор останавливается. Перед сравнением проверьте overflow, число пропусков и причину остановки. Длинное демо записывайте частями, задавая первый и последний кадры. Не включайте незавершенные измерения в сравнение.

Экспорт создает <gamedir>/studio_diagnostics/<name>.phases.csv и <name>.phases.metadata.json. Наличие файла метаданных подтверждает завершение экспорта. При ошибке записи данные сохраняются в памяти, и экспорт можно повторить. После успешного экспорта запись очищается.

CSV версии 2 содержит время этапов, номера кадров, счетчики моделей, мешей и треугольников. Время указано в микросекундах. frame_interval_us показывает интервал между началами записанных отрисовок сцены; остальные значения времени относятся к одной отрисовке. physical_draws считает вызовы графического API, triangles считает выбранные треугольники, а submitted_triangles считает все переданные треугольники, включая части модели, которые не видны в выбранном варианте.

Сопоставляйте результаты по номеру кадра демо и времени клиента. view_id нумерует записи; output_id=0 означает, что номер вывода изображения недоступен. Файл метаданных содержит имя демо, диапазон записи, количество завершенных измерений, пределы памяти, пропуски и причину остановки.

Запись описания кадра

r_studio_dump render_check

Команда сохраняет описание следующей сцены в <gamedir>/render_check.txt: модели, выбранный рендерер, материалы и освещение. Если NextClient передал модель штатному рендереру, в дампе указывается причина.

r_studio_dump render_lights lit

Вариант lit ждет кадр, в котором модель освещает источник света игровой сущности, и сохраняет его параметры.

Сравнение изображений

Выберите неподвижную сцену и выполните:

r_studio_ab render_compare

Команда сохраняет два изображения в игровом каталоге: render_compare_off.tga со штатным рендерером и render_compare_on.tga с рендерером NextClient. Затем она восстанавливает настройки. Пользовательские материалы отключаются на обоих снимках. Нужна загруженная карта; пока один захват не закончен, второй не запускается.

Снимки сделаны в разных кадрах, поэтому движение и анимация могут вызвать различия. Также учитывайте особенности fullbright и отсутствие штатной плоской тени у моделей NextClient. Порядок анализа изображений приведен в проверке Studio.

Диагностика компиляции шейдеров

Параметр запуска -dev включает сообщения компиляции шейдеров. Параметр -noshaderwarmup откладывает компиляцию до первого использования шейдера. Он может помочь проверить ошибки первого запуска, но компиляция во время игры влияет на замеры производительности.