Тестирование в F.E.A.R.
Тестовый стенд, который мы использовали при подготовке данного материала выглядит следующим образом
Тестовый стенд
Процессор
|
AMD Athlon64 X2 3800+ @ 2,7 ГГц
|
Плата
|
ASUS A8N-SLI Premium
|
Память
|
Hynix DDR400 2x1024 Мб
|
ОС
|
WinXP + SP2 + DirectX 9.0c
|
Блок питания
|
FSP 400 Вт
|
Видеокарта
|
PCI-E GeForce 7800GTX
|
Для тестирования использовались драйверы ForceWare 93.71 WHQL.
Этот стенд «слабее» по производительности, чем тестовый стенд на базе Intel Core Duo, который мы обычно используем в тестах, но в данном случае это некритично, поскольку наша задача состоит не в сравнении результатов разных видеокарт между собой, а в изучении минимального FPS. Что касается видеокарты, если кто забыл, то по конфигурации и производительности GeForce 7800GTX наиболее близка к GeForce 7900GT и имеет лишь чуть заниженные по сравнению с ней частоты.
Мы решили начать наше рассмотрение с хорошо известной игры F.E.A.R. Такой выбор обусловлен тем, что игра имеет встроенный бенчмарк, который показывает средний, минимальный и максимальный FPS, а также несмотря на солидный «возраст» довольно требовательна к железу. При прогоне бенчмарка одновременно запускалась утилита FRAPS, таким образом в нашем распоряжении оказывалось целых три набора данных. Первый набор – результаты показываемые самой игрой. Второй набор – данные FRAPS из файла « … minmaxavg.csv». Третий набор – данные, полученные после обработки файла FRAPS с именем « … frametimes.csv».
Для режима MaxQuality, 4AA/16AF, SS OFF - 1280x1024 получены следующие значения FPS (min, avg, max, соответственно):
- FEAR benchmark – 26; 48; 108;
- FRAPS minmaxavg – 23; 47,8; 110;
- FRAPS frametimes – 5,3; 62; 266;
Давайте построим диаграмму распределения FPS по диапазонам значений с шагом в 1 FPS на основе данных из FRAPS «frametimes». Поскольку нас интересуют минимальные значения, на диаграмме распределения мы оставим «главный колокол» значений, и отметим минимальные значения FPS для каждого набора. Первому набору соответствует зеленый цвет, второму – оранжевый, третьему – красный. Вот что получится в итоге.
Возникает закономерный вопрос, что же в этом случае считать минимальным FPS? вопрос не праздный. От принятого решения зависит и способ «борьбы» с минимальным FPS (в смысле его повышения). Если принять за правду показания встроенного бенчмарка, то вполне можно оставить все как есть, не так уж и критично выглядит картина. Но из диаграммы видно, что значение минимального FPS, сообщаемое встроенным бенчмарком игры, не является достоверным, поскольку присутствует заметное количество значений меньшей величины. И это действительно ощущается в виде заметных «лагов» или «спотыканий». Что касается результатов «FRAPS minmaxavg», то эта отметка ближе к реальности. Примечательно, что значение 23 FPS является практически «срезом» левой стороны главного колокола распределения. В диапазоне от 0 до 21 FPS мы видим «хвост» распределения из незначительного числа «провалов», минимальным из которых является значение 5,3 FPS из «FRAPS frametimes» (по построению). Приверженцы крайностей вполне могут посчитать именно это значение за «минимальный FPS», поскольку ниже уже некуда.
Мы не будем сейчас обсуждать природу этих «провалов» производительности, а приведем еще одну диаграмму распределения, полученную в тех же самых условиях, но для разрешения 640х480.
- FEAR benchmark – 43; 108; 299;
- FRAPS minmaxavg – 44; 109; 305;
- FRAPS frametimes – 9,8; 158; 444;
Как и ожидалось, при уменьшении разрешения результаты резко выросли, практически в 2 раза для всех типов значений (min, avg, max). Тем не менее, несмотря на значительное облегчение графического режима, «провалы» производительности вплоть до 10 FPS никуда не делись. Что может быть причиной их возникновения? Объем оперативной памяти стенда равен 2 Гб, а загрузка оперативной памяти в ходе тестирования не превышала 700 Мб. Видеопамять тоже не причем, как видно из скриншота ниже.
Для данной тестовой сцены максимальная загрузка видеопамяти была меньше 230 Мб, так что установленных на видеокарту GeForce 7800GTX 256 Мб видеопамяти вполне достаточно, чтобы не гонять текстуры по шине туда-сюда.
Как оказалось, в ходе теста все же идет подгрузка данных с жесткого диска, о чем свидетельствовал моргающий светодиод «HDD» на лицевой панели корпуса. Увеличение скорости жесткого диска наверняка может сгладить проблему. Поэтому, как ни смешно это звучит, вполне реальным представляется тестирование «зависимость минимального FPS от скорости работы дисковой подсистемы». С другой стороны, даже самый быстрый диск (или массив) не решит проблему полностью. В наших условиях тестирования объем оперативной памяти более чем достаточен, поэтому приходится констатировать, что это проблема движка игры, и дальнейшая борьба за увеличение минимального FPS находится за пределами выбора «правильного железа».
Ну а раз «провалы» производительности все равно будут иметь место даже на столь малых разрешениях, зачем отказывать себе в качественной графике? Для примера мы приведем еще одну диаграмму распределения, единственное отличие которой от первой из рассмотренных состоит в том, что режим 4AA/16AF заменен режимом NO AA/AF.
Как и ожидалось, «провал» на месте, а минимальный FPS по версии встроенного бенчмарка игры подрос с 26 до 33 FPS. Улучшение есть, но не настолько кардинальное, чтобы жертвовать полноэкранным сглаживаем и высококачественной анизотропной фильтрацией.
Подведем промежуточные итоги. На взгляд автора,
«минимальным FPS», который зависит от выбранного графического режима и производительности видеосистемы (а именно эта цифра представляет наибольший интерес при тестировании непосредственно видеокарт), все же
следует считать значение FPS, которое находится у левого «среза» главного «колокола» распределения.
Как видно из тестов F.E.A.R., это значение очень близко к тому, что показывает встроенный в игру бенчмарк. А что делать, если игра не обладает встроенными средствами измерения производительности? Вышеизложенный принцип определения «минимального FPS» может пригодиться и здесь. Давайте проверим это на игре Need For Speed Most Wanted.
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.