3D Mark 2003 – лучший игровой тест (?)
Вышел новый 3D Mark 2003! После первых впечатлений пользователи и тестеры “железа” быстро пришли в себя. Непохоже, что производительность процессора играет какую-либо существенную роль в итоговом результате. Сейчас все зависит целиком от видеокарты.
И здесь начинаются споры. Даже nVidia решила дистанцироваться от новой версии 3DMark и считает, что тест не имеет никакого отношения к реальной производительности. С одной стороны, выбор игровых тестов, начинающихся с редко играемых сцен полетов (Wings of Fury), мало отражает действительность. Все усугубляется в тестах GT2 и GT3. 3D движок, являющийся основной этих тестов, одинаков, и оба теста используют пиксельные программы v1.4 (здесь и дальше мы будем называть “шейдеры” программами). Ниже мы приведем цитату nVidia:
Эти тесты используют версию пиксельных программ ps1.4 в сценах. Если карта не поддерживает ps1.4, то используется версия программ ps1.1. Довольно подозрительно отсутствие поддержки пиксельных программ ps1.3. Современные DirectX 8.0 (DX8) игры, типа Tiger Woods и Unreal Tournament 2003, все используют пиксельные программы ps1.1 и ps1.3. Лишь немногие (если такие вообще есть) применяют ps1.4.
Подобный подход к пиксельным программам не только приводит к ухудшению результата ps1.1 карт по сравнению с ps1.4 (им требуется больше проходов для создания эффектов), ps1.4 сегодня практически не используются в играх. Xbox тоже не умеет запускать ps1.4 программы. Но что более серьезно, тест 3DMark03 использует различный код пиксельных программ для различных карт. В результате чего становится практически невозможным честное сравнение 3D чипов. В 3D Mark 2001 SE это относилось только к специальному ps1.4 тесту. Сейчас же все тесты, включая GT4 (Mother Nature) больше несовместимы друг с другом. Будет интересно услышать, что Futuremark официально сообщит по этому поводу. В пресс-релизе, посвященному выходу 3D Mark 2003, вы можете прочитать следующее:
Futuremark: вершинные и пиксельные программы становятся все более важной частью 3D графики, поэтому они нашли полное отражение в 3DMark03. Один из игровых тестов, демонстрирующий DirectX 9, использует вершинные программы 2.0 и пиксельные программы 2.0. Все остальные игровые тесты используют вершинные программы 1.1. DirectX 8 игровые тесты используют пиксельные программы 1.4 если это возможно, иначе пиксельные программы 1.1.
3D Mark 2003 – лучший игровой тест (?) продолжение
nVidia также подвергла критике 3D движок, на котором базируются тесты GT2 и 3, как неэффективный и не связанный с реальностью:
- Натягиваем текстуру на объект в вершинной программе
- Пиксельная программа записывает Z, RGB = окружение, и Alpha = Z перспективы
- Устанавливаем трафарет (stencil) на инкремент/декремент
- Натягиваем текстуру на объект в вершинной программе
- Трафаретные вычисления
- Нет пиксельной программы
- Натягиваем текстуру на объект в вершинной программе
- Пиксельная программа (освещение) записывает RGB = цвет
Два этих теста пытаются продублировать “Z-first” стиль рендеринга, который используется в грядущей стрелялке от первого лица Doom 3. Они имеют “думоподобный” вид, но странный способ рендеринга в этих тестах далек от Doom 3 или от любой другой известной игры. Метод, конечно, представляет научный интерес, но он настолько неэффективен, что вряд ли когда-нибудь будет применен в играх. В качестве примера лучше всего привести способ вычисления теней в этих тестах. Futuremark пытается использовать технику теней в Doom 3, называемую трафаретными объемными тенями (stencil shadow volumes). Алгоритм основан на нескольких проходах, которые осуществляются для всех объектов на сцене. Проходы выглядят в 3DMark03 следующим образом:
Для каждого объекта:
-
Проход 1 (Early Z)
Для каждого источника света:
-
Для каждого объекта:
-
Проход 2 (Подсчет трафаретной объемной тени)
Проход 3 (Освещение)
Обратите внимание на часть алгоритма “Натягиваем текстуру на объект в вершинной программе” – одни и те же вычисления многократно выполняются для каждого объекта. В сцене с пятью источниками освещения, к примеру, каждый объект будет обтянут текстурой 11 раз. Подобная неэффективность усугубляется раздутым алгоритмом, который используется для трафаретных вычислений. В отличие от использования метода Doom, 3DMark03 применяет подход, который в шесть раз увеличивает число вершин, участвующих в трафаретных вычислениях. В нашем примере с пятью источниками освещения, это равняется обтягиванию текстурой каждого объекта 36 раз! Ни одна игра такого никогда не сделает.
Подобный подход приводит к появлению узкого места в вершинной части графического конвейера, в результате чего оставшаяся часть конвейера (текстурирование, пиксельные программы, растровые операции и т.д.) не имеет возможности показать себя во всей силе. К сожалению, у 3DMark03 не получилось эмулировать Doom или любую другую игру, натягивая текстуру на каждый объект только раз за кадр, кэшируя полученный объект с текстурой и используя кэшированный результат в нескольких проходах для создания теней. Такой сбалансированный подход, вероятно, позволял бы работать на полной скорости как вершинной, так и пиксельной/растровой части конвейера. Разработка оборудования для реализации подхода 3DMark03 напоминает добавление грунтовки к многополосной магистрали, на случай если кто-нибудь пожелает проехаться на бульдозере. Громоздкий и неэффективный тестовый код типа 3DMark03 опирается на такие дизайны, которые никогда не будут использовать настоящие игры.
3D Mark 2003 – лучший игровой тест (?) продолжение
nVidia также сомневается в успешности теста GT4 (Mother Nature):
В этом году в 3DMark используется новая сцена природы. Как предполагается, она должна демонстрировать мощь DirectX 9.0 (DX9) приложений, которые выйдут на протяжении 2003 года. Главная особенность этой сцены состоит в том, что ее вряд ли можно полностью отнести DX9. Семь из девяти пиксельных программ в ней относятся к версии ps1.4 из DX8. Здесь возникают уже описанные выше проблемы с программами ps1.4. Только лишь две программы относятся к новой версии ps2.0. Пользователи надеются, что тест позволит им приоткрыть завесу тайны над будущими играми, но сцена дает лишь искаженную картину.
Довольно жесткие аргументы. Мы сейчас не будем обсуждать проблемы недостатков, которыми обладает продукция производителя X или Y. Что нам действительно важно – стоит ли опираться на результаты 3D Mark. Вспомните, что и более ранние версии 3D Mark обвинялись в отсутствии реалистичности, однако тогда маркетинговая машина nVidia очень сильно продвигала этот тест. У нас все больше создается подозрение, что nVidia боится за свое новое детище GeForce FX, которое не сможет достойно выступать против Radeon 9700 PRO в 3DMark03. И первоначальный тест, проведенный нами с ранней версией GeForce FX драйвера (v42.63), подтверждает наши подозрения. Вчера nVidia выпустила новый драйвер (v42.68), который значительно меняет результат в тесте:
Карта | Radeon 9700 PRO | GeForce FX 5800U | GeForce FX 5800U |
Драйвер | v6.14.01.6292 | v42.63 | v42.68 |
Очки 3DMark | 4718 3DMarks | 3468 3DMarks | 5253 3DMarks |
GT1 – Wings of Fury | 165,6 fps | 163,3 fps | 169,6 fps |
GT2 – Battle of Proxycon | 30,6 fps | 19,7 fps | 35,5 fps |
GT3 – Troll’s Lair | 28.3 fps | 16.5 fps | 28.6 fps |
GT4 – Mother Nature | 27,1 fps | 19,8 fps | 35,1 fps |
Очки процессора | 607 CPUMarks | 576 CPUMarks | 577 CPUMarks |
CPU тест 1 | 63,9 fps | 57,7 fps | 57,6 fps |
CPU тест 2 | 11,4 fps | 11,3 fps | 11,4 fps |
Скорость заполнения (одна текстура) | 1499,7 МТекселей/с | 1302,8 МТекселей/с | 1303,2 МТекселей/с |
Скорость заполнения (мультитекстурирование) | 2269,0 МТекселей/с | 3277,7 МТекселей/с | 3277,7 МТекселей/с |
Вершинные программы | 14,9 fps | 7,3 fps | 13,8 fps |
Пиксельные программы 2.0 | 41,1 fps | 12,0 fps | 14,2 fps |
Ragtroll | 19,8 fps | 11,9 fps | 17,7 fps |
С новым драйвером производительность программ практически удвоилась в некоторых тестах! GeForce FX значительно отстает лишь в тесте пиксельных программ 2.0. Удивительно, что Radeon 9700 Pro работает быстрее в тесте процессора 1, поскольку в данном тесте графическая карта вообще не должна играть никакой роли.
До какой степени оптимизация драйвера может увеличить производительность? Ниже вновь приводим выдержку nVidia:
3DMark03 демонстрирует большую художественную работу в четырех демо сценах. Но эти сцены слишком далеки от реальных игр, чтобы считать 3DMark03 игровым тестом. 3DMark недостает сходства с реальными играми, он неправильно передает игровые принципы и не дает потребителю достоверную информацию для принятия решения о покупке. 3DMark03 также заставляет производителей “железа” тратить ценные инженерные ресурсы на улучшение производительности в искусственно созданных условиях, которые никогда не будут повторены в настоящих играх. В итоге же страдает потребитель.
Начиная со второго и заканчивая последним предложением, nVidia подтвердила большое количество работы, затрачиваемое на оптимизацию драйвера под конкретный тест. В реальных играх такой подход можно только приветствовать, поскольку игроки получат практическую пользу от подобных оптимизаций.
Заключение
Независимо от того, как вы будете интерпретировать мнение nVidia по поводу 3DMark 2003, тест произвел на нас двоякое впечатление. Общий результат 3D Mark не соответствует версии 2001 и более ранней, но в отдельных тестах вы можете прийти к тем же заключениям о производительности графической карты. В версии 2003 Futuremark еще больше сократила тесты. К примеру, нам не хватило тестов с высоким числом полигонов и источников освещения. Даже результаты производительности процессора можно поставить под вопрос, поскольку они очень сильно зависят от видеокарты. Тесты качества изображений ограничены лишь скриншотами, вместо демонстрации спецэффектов, которые смогли бы отразить преимущества и недостатки специфичных режимов сглаживания карт.
Будет интересно пронаблюдать, как Futuremark отреагирует на критику, особенно по поводу использования версии пиксельных программ 1.4. На мероприятии nVidia “от рассвета до заката” в Лондоне мы повстречали игрового разработчика (потребовавшего сохранить свою анонимность), который поделился интересной информацией. Он объяснил нам, что для графического драйвера не составляет никаких проблем распознать код известной программы-шейдера, а потом заменить его специальным, оптимизированным кодом, который будет затем использоваться при работе игры или теста. Приложение же ничего не будет подозревать об этом небольшом трюке. Поэтому фиксированные (следовательно, широко известные) тесты пиксельных и вершинных программ в 3D Mark полностью теряют свою актуальность. В результате лучшим способом узнать реальную производительности карты по-прежнему остается запуск “настоящей” игры. При этом nVidia придерживается того же мнения:
Итак, где можно взять настоящий игровой тест? А как насчет запуска самой игры? Многие популярные игры включают в себя внутренние тесты именно для этих целей. Doom3, Unreal Tournament 2003 и Serious Sam Second Encounter намного лучше отображают текущую и будущую игровую производительность. А поскольку разработчики этих игр лицензируют свои движки другим разработчикам, то вы можете ожидать появления следующего поколения игр, которое будет работать на данных движках. Сегодня потребителям больше не нужно опираться на искусственные попытки тестов стать похожими на игры. В большинстве случаев ваши любимые игры уже содержат тесты внутри себя.
Столь резкая смена отношения nVidia довольно любопытна – до нынешнего момента 3D Mark всегда высокого оценивался среди производителей, включая nVidia. Первоначально смена подхода nVidia нам показалась попыткой скрыть слабую производительность FX в этом тесте. Но после выпуска nVidia нового драйвера мы уже так не считаем. Возможно, уменьшилось влияние nVidia на разработку 3DMark. Тем более что с новой программой “Так нужно Играть” nVidia пытается увеличить свое влияние на игровых разработчиков. Конечно, игроки с картами nVidia, несомненно, выиграют от такого подхода компании, они получат улучшенное качество графики и производительность в играх. Однако владельцы остальных карт наверняка имеют другое мнение. На форуме nVidia для разработчиков стало очевидно, что код пиксельных программ версии 2.0 выполняется неодинаково на всем оборудовании. В результате получается так, что разработчикам приходится писать особый код для различных чипов, чтобы гарантировать хорошую производительность на всех возможных платформах. Это объясняет внимание, уделяемое nVidia разработчикам. Главная причина критики nVidia по поводу 3D Mark 2003 заключается в отказе Futuremark оптимизировать код? В этом случае nVidia права, говоря о плохой реалистичности теста – ведь с одной стороны, он был разработан без влияния nVidia, и с другой сторон, трудно представить, что действительно “нейтральный” код будет полезен для измерения производительности.