Английская версия | Рендерер 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 откладывает компиляцию до первого использования шейдера. Он может помочь проверить ошибки первого запуска, но компиляция во время игры влияет на замеры производительности.