Сегодня 20 апреля 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Видеокарты

Unreal Tournament 2003 в роли бенчмарка

Введение

Вопреки общераспространенному мнению о вреде синтетике, посмеем не согласиться с этим тезизом. Для тестирования видеокарт необходимо использовать как реальные приложения, так и синтетические тесты - только они могут разложить карту по полочкам и отдельно протестировать каждый структурный блок и методы реализации. Т.е. игровые тесты проводят полномасштабное тестирование видеокарты, а синтетические - структурные.

Но сегодня речь пойдет не о синтетике - мы рассмотрим игру Unreal Tournament 2003 в роли бенчмарка. Как мы и ожидали, компания Epic включила в состав UT2K3 полный набор инструментов тестирования, позволяющих моделировать единую среду для измерения производительности в игре. Игра базируются на графическом движке - Unreal Engine. Сам движок построен на базе DirectX7 и использует функции TCL (Transformation, Clipping and Lighting), доступные в видеокартах с T&L, при этом поддержка пиксельных и вершинных шейдеров DirectX 8 минимальна, даже если карта и имеет аппаратную поддержку. В видеокартах с DirectX 8 для многопроходной отрисовки данных ландшафта и их объединения используются пиксельные шейдеры. Разница в производительности у видеокарт DirectX 7 и DirectX 8 минимальна, а по качеству изображения они практически идентичны. В UT2K3 широко представлены кубические карты, многократно увеличилось число полигонов и размер текстур значительно больше, чем у предшественника.

Встроенный тестовый инструментарий

Для начала рассмотрим, что вошло в состав встроенного бенчмарка, и затем перейдем к процедуре тестирования с помощью созданной сайтом [H]ardOCP пакетной утилиты.

Как вы уже заметили, файл benchmark.exe находится в каталоге C:UT2003System. По запуску программа предлагает выбрать из списка значение разрешение, на котором будут проводиться тесты, после чего будут выполнены два flyby-теста и два bot-матча и по каждому будет выведен средний результат.


 Встроенный benchmark.exe

А вот здесь и наступают проблемы. Во-первых, по результатам botmatch-тестов невозможно точно сравнить производительность систем. В botmatch-тестах используются "боты", т.е. игроки, управляемые AI. Их поведение сильно зависит от мощности процессора. Неравномерность загрузки процессора во время botmatch-тестов заметно влияет на поведение ботов. Причем, настолько, что при прочих равных условиях даже на одной и той же машине результаты получаются совершенно разные. Другая проблема в том, что результат выводится как среднее из показателей двух flyby-бенчмарков. Результаты по каждому отдельному тесту можно просмотреть в файлах "benchmark.log" или "lowframerate.log" в каталоге C:UT2003Benchmark. Но это очень неудобно при большом количестве тестов производительности. Причем, в такой методике кроме экранного разрешения никакие другие параметры изменить нельзя. Поэтому в скриптовый файл приходится вносить изменения. Но в большинстве игр и таких-то средств тестирования нет.

При каждом запуске, benchmark.exe использует одни и те же настройки качества, поэтому результаты flyby-тестов, полученные в разных системах, постоянны. Для выполнения тестов программа benchmark.exe использует файлы настроек MaxDetail.ini, MinDetail.ini, MaxDetailUser.ini и MinDetailUser.ini из каталога C:UT2003BenchmarkStuff. Значение параметра MinDesiredFrameRate постоянно и равно 35FPS, хотя, как выяснилось, бенчмарк, запускаемый с ключом -benchmark, игнорирует значение параметра MinDesiredFrameRate, поэтому на результатах тестов он никак не отражается. Эта программка очень полезна для проведения быстрых flyby-тестов и сопоставления результатов, но она не дает многих возможностей настроек, существенных для тестирования.

Прибегаем к старому проверенному методу - пакетным скриптам. В каталоге C:UT2003Benchmark имеется набор готовых пакетных скриптов - семь скрипт-файлов для запуска botmatch-тестов и семь для flyby-тестов. Как уже отмечалось, botmatch-тесты мы проводить не будем, а сразу перейдем к flyby-тестам. Тесты проводились с картами Antalus, Asbestos, Citadel, Face3, Inferno, Phobos2 и SunTemple. В качестве эталонных benchmark.exe использует flyby-карты Antalus и Asbestos. Запуск пакетных скриптов для сравнения производительности по семи, а не двум, картам имеет очевидные преимущества. А теперь заглянем внутрь одного из пакетных скриптов. Открываем файл flyby-antalus.bat и видим следующее:

..Systemut2003.exe dm-antalus?game=engine.gameinfo exec=..BenchmarkStuffflybyexec.txt -benchmark -seconds=77 -nosound %1

Две точки в начале строки обозначают относительный путь, то есть, для корректной работы этот пакетный файл должен располагаться в соответствующем каталоге. Скрипт вызывает на выполнение файл ut2003.exe из каталога UT2003System, которому дается команда запустить карту dm-antalus, используя настройки engine.gameinfo. После этого запускается *.txt-файл, в котором прописана пара команд. Запуск программы с ключом –benchmark переключает ее в режим бенчмарка, а ключ –seconds=77 задает продолжительность выполнения flyby-теста. Ключ –nosound предписывает отключить звук на время выполнения flyby-теста. По умолчанию будет вызван файл ut2003.ini из каталога UT2003System. В тестовой утилите версии Demo этот INI-файл переписывался всякий раз после выполнения тестов с разными настройками качества. В полной версии игры бенчмарк работает уже несколько по-другому, что должно вам понравиться.

Результаты запуска одного из этих пакетных файлов записываются в файлы benchmark.log и lowframerate.log в том же каталоге UT2003Benchmark. В них представлены результаты по минимальным/средним/максимальным и итоговым средним показателям FPS. В файле lowframerate.log данные представлены более структурировано - здесь имя карты выведено в заголовок каждого теста. В версии Demo это основной файл для записи результатов. Детальная расшифровка результатов каждого теста приведена в каталоге UT2003BenchmarkCSVs. Эти .CSV файлы можно прочесть с помощью Excel. В них приводится детальная информация обо всем, что происходило при отработке каждого кадра во время выполнения flyby-теста. Для наших тестов такая детализация излишняя. Для нас важнее возможность быстрее просматривать результаты по минимальным, максимальным и средним FPS, поэтому для просмотра этой информации после каждого теста будем использовать файл lowframerate.log. Как видите, использование комбинаций пакетных файлов позволяет писать очень эффективные тестовые скрипты, что мы и проделали.

Утилита UT2K3 Benchmark

Сайтом [H]ardOCP была создана удобная утилита для пакетного прохождения встроенного теста UT2003.

Как уже указывалось, в комплект игры входят два файла настроек качества: MaxDetail.ini и MinDetail.ini. Хотя их вполне достаточно, но изменение настроек 3D позволит вывести дополнительные результаты отдельно для High Quality и Low Quality. Внесенные изменения минимальны, но разница в показателях производительности по отношению к эталону оказалась существенной.

Изменения в настройках:

1. В файле MaxDetail.ini, в разделе [D3DDrv.D3DRenderDevice] параметрам DetailTexMipBias и DefaultTexMipBias присвоено значение -0.8. Более агрессивные LOD придают изображению больший контраст, но на максимальной детализации увеличивают нагрузку на аппаратные ресурсы. Далее, в этом же разделе [D3DDrv.D3DRenderDevice] включена тройная буферизация (присвоив параметру UseTripleBuffering значение True). Чтобы карты освещенности четче отображались при максимальной детализации и максимальном качестве, параметру UseCompressedLightmaps присвоено значение False.

2. В файле MinDetail.ini изменены следующие настройки. В разделе [D3DDrv.D3DRenderDevice] параметрам DetailTexMipBias и DefaultTexMipBias присвоены значения 0.8. Положительное значение LOD дает придает текстурам размытость контуров, но при этом позволяет повысить производительность. Отключаем тройную буферизацию и присваиваем параметру UseCompressedLightmaps значение True.

3. Для тестирования и сравнения показателей производительности процессоров и материнских плат в среде Unreal Tournament 2003 включен скрипт-файл CPU Test.INI, но для этого настройки должны быть минимальными. Тест проводился только с картой Inferno на разрешении 640х480. Поэтому все настройки качества пришлось перевести на минимальный уровень и отключить детализацию. Чтобы максимально загрузить процессор, мы отключили еще два параметра и присвоили параметрам UseHardwareTL и UseHardwareVS значения False. Это позволяет уменьшить влияние видеокарты на показатели производительности и перенести всю нагрузку на процессор.

В итоге, вместо того, чтобы запускать каждый пакетный файл поочередно, и была создан универсальный пакетный файл с необходимыми настройками качества. Это главное, что позволяет утилита "UT2K3 Benchmark". По запуску пакетного файла программа сначала обращается в реестр и ищет путь установки UT2003. То есть, она будет работать независимо от того, в каком каталоге установлена UT2K3. UT2K3 может располагаться на любом диске или в любом каталоге. Ввиду специфических особенностей считывания команд реестра данная программа работоспособна только в операционных системах Windows 2000 и XP.

Так выглядит пример скрипта для запуска одного из flyby-тестов:

“%UTLOC%Systemut2003.exe" dm-antalus?game=engine.gameinfo exec=%UTLOC%BenchmarkStuffflybyexec.txt -benchmark -seconds=77 -nosound ini=%UTLOC%BenchmarkCustom_MaxDetailCustom_MaxDetail.ini userini=%UTLOC%BenchmarkStuffMaxDetailUser.ini -1600x1200

где %UTLOC% - переменная пути к UT2K3. Здесь для запуска карты dm-antalus с настройками engine.gameinfo вызывается файл ut2003.exe. Кроме того, запускается тот же файл flybyexec.txt с соответствующими командами. Там же присутствуют ключи –benchmark, -seconds и -nosound. Наш пример отличается лишь строкой ini=line, которая предписывает скриптам запускать файл Custom_MaxDetail.ini и выполнять копирование пакетного файла в каталог с именем Custom_MaxDetail. Тем самым, наш INI-файл уже не будет переписывать файлы настроек UT2K3 и ничего не спутает, а все настройки будут сохранены.


 Утилита UT2K3 Benchmark

Скриншот интерфейса программы дает наглядное представление о работе этой тестовой утилиты. Проще не бывает.

  1. Распакуйте каталог в любое место на диске. Неважно, где вы ее разместите - заглянув в реестр, программа найдет путь к установке Unreal Tournament 2003;
  2. Запустите программу [H]ardOCP UT2K3 Benchmarker.exe;
  3. Выберите нужное разрешение(я);
  4. Выберите API (D3D, OpenGL).

Программа начнет выполнение тестов на доступных демках. Тест может выполняться довольно долго, в зависимости от количества выбранных разрешений. При выборе всех разрешений тест с одной настройкой quality занимает от 30 минут до 1 часа, особенно на медленной системе. Тестирование процессора проводится на разрешении 640х480 независимо от выбранного. Тест выполняется только с одной картой - Inferno.

По завершении тестов на экран будут выведены результаты в виде готовой html страницы - таблица результатов по Low FPS, Average FPS и High FPS для каждого теста:

Утилита UT2K3 Benchmark Utility доступна для скачивания отсюда. Файл распространяется свободно и без ограничений.

А теперь подробнее о том, как работает скрипт. При первом запуске EXE-файл отыскивает путь к установке Unreal Tournament 2003. Если программа найдена, то на панели становятся доступными соответствующие кнопки управления. По нажатию кнопки с соответствующим разрешением программа создаст новый каталог внутри каталога UT2003 и скопирует в него пользовательский INI-файл вместе с соответствующими настройками качества. После этого без вмешательства пользователя будут последовательно выполнены все тесты. По завершении всех тестов программа скопирует в этот каталог текстовый файл с результатами для выбранных настроек качества и на экране появится всплывающее окно, показывающее полученные результаты. В этот момент программа удалит из каталога UT2003 созданный рабочий каталог вместе с вашим INI-файлом и приведет все в исходное состояние.

Утилита выполняет 3 вида тестов: High Quality, Low Quality, и СPU Test. Любой из этих тестов в сочетании с функциями качества изображения - антиалиасинг и анизотропная фильтрация - можно использовать для детального и всестороннего тестирования производительности системы в игровых приложениях. Текущая версия утилиты работает только в операционных системах Windows 2000 и Windows XP.

Программа работает одинаково как в демке, оригинальной версии игры, так и в версии с патчем 2136. Патч не влияет на производительность в 3D. С марта 2003-го доступна уже третья модификация утилиты, нынешний номер версии 2.1.

Дополнительные материалы:

3DMark 2003: увидеть будущее
DooM 3 в роли бенчмарка
Max Payne в роли бенчмарка
Serious Sam в роли бенчмарка
Тестовый пакет 3DMark 2001 Pro

 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Schneider Electric ведёт переговоры о покупке Bentley Systems 6 ч.
Новая статья: Atom Bomb Baby: рассказываем, почему Fallout — идеальная экранизация видеоигрового материала, и почему этот сериал не стоит пропускать 7 ч.
Bethesda готовит «несколько очень хороших обновлений» для Starfield, а Fallout 5 не в приоритете 8 ч.
Apple откроет сторонним приложениям доступ к NFC 9 ч.
В Dota 2 стартовало сюжетное событие «Павшая корона» с уникальными наградами, новыми «арканами» и комиксом 9 ч.
Связанные одной шиной: «Лаб СП» и «Фактор-ТС» представили отечественную интеграционную платформу Integration Gears 9 ч.
Paradox отказала Prison Architect 2 в досрочном освобождении — релиз отложили ещё на четыре месяца 11 ч.
Спустя 17 лет после релиза Team Fortress 2 получила поддержку 64 бит — выросла производительность и даже боты пропали 12 ч.
Netflix резко нарастила аудиторию и прибыль, запретив совместное использование аккаунтов 13 ч.
Российские студенты победили в чемпионате мира по программированию ICPC 13 ч.
Власти Китая упростили условия привлечения иностранных инвестиций в национальный технологический сектор 24 мин.
Гиперщит с ИИ: Cisco представила систему безопасности Hypershield 8 ч.
Highpoint представила карту расширения на восемь SSD: до 64 Тбайт со скоростью до 56 Гбайт/с 9 ч.
Китайские экспериментальные лунные навигационные спутники прислали фотографии обратной стороны Луны 9 ч.
Налоговая служба Швеции закрыла 18 дата-центров за незаконный майнинг криптовалют 10 ч.
LG выпустила флагманский саундбар S95TR за $1500 с поддержкой Dolby Atmos и настройкой с помощью ИИ 12 ч.
Seagate заявила, что жёсткие диски с HAMR уже не уступают по надёжности традиционным HDD 13 ч.
Corsair представила обновлённые доступные проводные гарнитуры HS35 v2 для геймеров 13 ч.
Tesla отзовёт все проданные электромобили Cybertruck для замены залипающей педали газа 14 ч.
Galax выпустила полностью белую низкопрофильную GeForce RTX 4060 с крошечным заводским разгоном 16 ч.