i3D-Quality — Под микроскопом: Январь-февраль 2009, Производительность режимов высокого качества в S.T.A.L.K.E.R. Clear Sky


Когда в ноябре прошлого года мы изучали новые опции качества, появившиеся в игре S.T.A.L.K.E.R. Clear Sky с патчем 1.5.07, то не догадывались о том, что в конце декабря компания GSC Game World выпустит утилиту-бенчмарк, основанную на коде этого самого патча 1.5.07, и позволяющую протестировать производительность этих опций.

Мы решили воспользоваться этой утилитой, результатом чего и стало наше сегодняшее исследование, которое можно отчасти рассматривать как «fps-дополнение» к ноябрьскому исследованию качества.

Конфигурация системы

  • Intel Core 2 Quad Q9550 / Intel X48 / 4 ГБ DDR2-667 ОЗУ
  • ОС Microsoft Windows Vista 64-bit Service Pack 1
  • AMD Radeon HD 4870 X2, драйвер Catalyst версии 9.1
  • NVIDIA GeForce GTX 280, драйвер версии 182.05

Утилита представляет собой последовательный (и весьма продолжительный) пролёт камеры через один и тот же уровень, но с четырьмя разными наборами эффектов: Day, Night, Rain и SunShafts, причём, последний набор является самым требовательным к GPU, потому как только в нём используются пресловутые «god rays» — лучи солнечного света.

В опциях бенчмарка можно выбрать разрешение, режим рендеринга (освещения), указать степень антиалиасинга, включить использование API DX10.1 и сглаживания прозрачных текстур — все эти опции нам как раз и интересны. Кроме того, мы решили сравнить производительность и в разных версиях API: DX9 vs. DX10 vs. DX10.1 (разумеется, на карте, которая его поддерживает).

Что касается остальных настроек игр, то они сгруппированы в «пресеты», из которых в DX9-режиме максимально доступен лишь Extreme, а в DX10-режиме появляется еще и Ultra (отличается, видимо, только качеством рендеринга теней от солнца — на разницу в качестве между разными режимами вы можете посмотреть в нашем ноябрьском тестировании).

GeForce GTX 280

Начнём, как обычно, в алфавитном порядке с видеокарты GeForce GTX 280, благо что из-за отсутствия у неё поддержки DirectX версии 10.1 число сравниваемых режимов будет заметно меньше, чем у Radeon.

Первый пролёт камеры (забегая вперед заметим — не самый «простой») на GTX 280 продемонстрировал весьма ожидаемые результаты: по мере движения к лучшему качеству производительность падает.

Причём, наибольшее падение наблюдается при включении антиалиасинга, что позволяет заподозрить либо саму функцию в низкой эффективности реализации в этой игре (из-за особенностей своих алгоритмов движок S.T.A.L.K.E.R. требует отдельных усилий для использования MSAA — антиалиасинг «официально» вообще доступен лишь в DX10-рендерере, хотя на видеокартах NVIDIA вы можете его форсировать и под API DX9); либо видеокарту GTX 280 в нехватке ПСП.

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

Любопытно также отметить, что переход к использованию API DX10 при сохранении уровня качества (Enchanced Full Dynamic Lightning, Extreme-пресет) привёл к некоторму падению производительности, что странно, потому как видимых причин для этого нет.

Второй — ночной — пролёт показал заметно более высокий в среднем уровень производительности.

Несколько видоизменился и профиль графиков: пропало падение производительности при переходе от Extreme к Ultra-пресету под API DX10 — вероятнее всего, дело в том, что ночью тени от солнца в любом пресете качества не отрисовываются.

При этом падение производительности при переходе к DX10 стало гораздо более ярко выраженным. Особенно «отличилось» низкое разрешение, в котором производительность определяется в первую очередь центральным процессором. Здесь странно то, что API DX10, по идее, должен быть менее процессорозависим, нежели API DX9 — драйверы? или просто неудачно портированный в DX10 рендерер?..

В третьем пролёте производительность еще выше — и опять нет теней от солнца, за счёт чего переход к Ultra-пресету качества не только не сказался на производительности, но даже привёл к небольшому (на 1 fps по всем разрешениям) росту производительности — видимо, какие-то функции в Ultra-пресете лучше оптимизированы под API DX10, нежели в Extreme-пресете, являющемся калькой с DX9-версии рендерера (что еще раз доказывает, что получить выгоду от API DX10 можно только если ваш движок под него разрабатывается изначально).

В остальном результаты повторяют два предыдущих пролёта.

Заметим, что даже в этом, самом нетребовательном тесте видеокарта GeForce GTX 280 не обеспечивает играбельных fps в предельных режимах качества не только в разрешении 1920х1200, но и в гораздо более «демократичном» 1680x1050. Если суммировать результаты по всем трём прогонам, то получается, что включать антиалиасинг на GTX 280 в SCS вообще не стоит — если только вы не планируете играть в разрешении 1280х960 или ниже.

А учитывая довольно незначительный прирост качества при использовании Ultra-пресета под DX10 без антиалиасинга мы логично приходим к выводу, что на GTX 280 играть в SCS следует вообще в DX9-режиме с Extreme-настройками. Вот в этом режиме вы уже можете попробовать выставить разрешение 1920х1200.

Последний пролёт это фактически стресс-тест: итоговые fps на GTX 280 балансируют на грани играбельности даже в режиме DX9 Extreme и разрешении 1280х960!

Вместе с тем, именно здесь мы впервые за все четыре пролёта наблюдаем превосходство DX10 над DX9 на одинаковых настройках (правда, только в относительно высоких разрешениях — опять сказывается странная процессорозависимость DX10-рендерера SCS?), что снова позволяет сделать вывод о том, что век API DX10 еще не пришёл: для того, чтобы DX10-эффекты по-настоящему себя показали нам нужны в разы более производительные видеокарты, на современном железе показатели производительности таковы, что не важно DX9 используется или DX10 — всё равно получается слайдшоу.

Radeon HD 4870X2

В ноябрьском исследовании мы отмечали, что судя по нашим ощущениям и показателям моментальных fps видеокарта 4870 X2 справляется с отображением графики SCS заметно оперативнее — почти в 2 раза! — соперника в лице GTX 280. Давайте посмотрим, подтвердит ли этот эмпирический вывод официальный бенчмарк.

На видеокарте Radeon в список тестируемых режимов добавились не только те же DX10-режимы, но с использованием API DX10.1, но еще и дополнительный режим сглаживания прозрачных текстур, доступный только DX10.1-видеокартам.

Чтобы в дальнейшем не повторяться мы несколько забежим вперед и сразу скажем, что использование DX10.1 вместо DX10 при одинаковых настройках качества даёт видеокарте Radeon минимальный прирост производительности в среднем на 1-2 fps, что нельзя не приветствовать. Причём, особенно яркие приросты DX10.1 демонстрирует в четвёртом, самом тяжелом тестовом пролёте, что неплохо коррелирует с результатами, полученными нами в том же пролёте на GTX 280 при сравнении API DX10 и DX9.

В остальном 4870 X2 демонстрирует похожую на GTX 280 кривую падения производительности в первом пролёте: DX10 (и DX10.1 тоже, кстати) медленнее DX9 (причём, в случае использования DX10 падение сильнее, нежели на GTX 280); включение антиалиасинга приводит к самому заметному снижению производительности; а использование сглаживания прозрачных текстур также уменьшает эту производительность не меньше, чем само включение антиалиасинга.

Любопытно отметить, что DX10.1-режим сглаживания прозрачных текстур хоть и оказался в этом пролёте медленнее DX10-режима, но по производительности был равен DX10-режиму сглаживания при использовании API DX10. Проще говоря, на видеокартах Radeon нет никакого смысла использовать DX10-рендерер в SCS — вам доступна более высокая производительность при использовании API DX10.1 или такая же производительность при более высоком качестве в DX10.1-режиме сглаживания.

Забавно, но факт: до включения антиалиасинга производительность 4870 X2 во втором пролёте оказалась примерно одинаковой для разрешений 1680х1050 и 1920х1200 в случае использования DX10(.1). Подобный результат недвусмысленно указывает на ограниченность этого теста CPU, что в сумме с существенно более высокими результатами в DX9-режиме и похожими результатами GTX 280 позволяет отбросить предположение о плохой оптимизации DX10-драйверов обоих вендоров. Нет, падение при переходе к DX10 в SCS вызвано сугубо и исключительно неудачно портированным в DX10 рендерером игры.

В остальном графики повторяют те, что мы уже видели у GeForce (хотя абсолютные fps у Radeon заметно выше).

Стоит, правда, отметить, что если GTX 280 во втором пролёте камеры показала бОлее высокую производителность, нежели в первом, то у 4870 X2 ситуация обратная: «ночь» почему-то оказалась медленнее «дня».

Зато «дождь» не подвёл: здесь мы можем наблюдать не только самые высокие fps из всех пролётов и на Radeon, но и небольшой рост производительности при переходе к Ultra-пресету — всё как и у GeForce.

Давайте же как и у GeForce сделаем общий вывод по производительности по первым трём тестам: в отличие от видеокарты NVIDIA двухчиповый флагман AMD вполне позволяет играть в SCS с антиалиасингом даже в разрешении 1920х1200. Причём реализация AFR-алгоритма в SCS в драйверах AMD достаточно хороша, и до тех пор, пока средний fps оказывается достаточно высоким AFR-проблемы в SCS в глаза не бросаются.

А вот сглаживание прозрачных текстур на практике оказалось почти неприменимым в игре и на 4870 X2 — во всяком случае в разрешении 1920х1200 поиграть с красивыми кустами-деревьями у вас, скорее всего, не получится. Любители красоты могут попытать свои силы в разрешении 1680х1050, в котором средний fps, в принципе, достаточен для играбельности, однако тут на сцену уже могут выйти неприятные AFR-особенности этой видеокарты.

В последнем стресс-пролёте, как мы уже отмечали, ярче всего проявляют себя приросты от использования API DX10.1, однако тут же следует отметить, что в этом пролёте на Radeon даже DX10.1-режим не смог обогнать DX9-рендерер — на GTX 280 DX10 оказался быстрее DX9.

В некотором роде этот результат является отражением давно подмеченной нами особенности видеокарт Radeon: они существеннее своих GeForce-конкурентов теряют производительность при переходе в DX10-режимы. За прошедшие с появления первой DX10-видеокарты AMD почти два года эта ситуация так и не изменилась, что позволяет сделать предположение о меньшей эффективности самой архитектуры сегодняшних чипов Radeon при исполнении сложных DX10-шейдеров. Впрочем, возможно, конечно, что программисты AMD уже два года не могут привести в чувство свои DX10-драйверы — мало ли, что бывает...

Выводы

Что касается сравнительной производительности GeForce GTX 280 и Radeon HD 4870 X2 в S.T.A.L.K.E.R. Clear Sky, то хоть двукратного преимущества последней видеокарты над своим конкурентом мы и не обнаружили, но коэффициент «1,5+» соблюдается практически во всех режимах всех пролётов бенчмарка. Другими словами, двухчиповый флагман AMD примерно в полтора или более раза быстрее своего предыдущего одночипового конкурента NVIDIA в этой игре — подобный результат тестов вполне соответствует тому, что мы видим на экране во время игры.

Вместе с тем даже Radeon HD 4870 X2 не обеспечивает достаточной мощности для использования всех опций качества рендерера SCS патча 1.5.07: в лучшем случае вы сможете поиграть в разрешении 1920х1200 с антиалиасингом, но без сглаживания прозрачных текстур и уж тем более без «солнечных лучей». О видеокарте GeForce GTX 280 и говорить нечего: её владельцам в SCS придётся обойтись без антиалиасинга.

Ждём новое поколение?





Дополнительно

ВИКТОРИНА SILVERSTONE

1. Сколько 2.5" накопителей можно установить в корпус LD01?