Тестовая система и условия тестирования
При тестировании использовался стенд со следующей конфигурацией:
Процессор - Intel Pentium 4 2800 МГц
Материнская плата - ASUS P4S8X (SiS 648)
Память - 512 MB DDR 400
Жесткий диск - IDM DTLA 305030 30 GB
Программное обеспечение:
Microsoft Windows XP Professional
Microsoft DirectX 9.0
Драйвер SiS AGP v.114
Драйвер Detonator версии 42.68 для NVIDIA GeForce FX 5800 Ultra и GeForce4 Ti4800
Драйвер Catalyst версии 3.1 для ATI RADEON 9700 Pro
В синтетических тестах использовались настройки драйверов по умолчанию, с одним лишь исключением - была отключена видеосинхронизация (VSync).
Видеокарта NVIDIA GeForce FX 5800 Ultra была протестирована в двух режимах: на номинальных частотах,
500/1000 МГц и, для оценки эффективности работы функциональных блоков NV30 в сравнении с R300 - на частотах ATI RADEON 9700 Pro,
325/620 МГц.
Итак, приступим!
Скорость заливки (Fill Rate) и мультитекстурирование
Для начала - тест Fill Rate из 3DMark 2001 SE. Этот тест я провел как в стандартном режиме, так и при включении полноэкранного сглаживания - для проверки функций сжатия буфера кадра и Z-буфера:
По результатам очевидно, что сжатие буфера кадра работает как на NVIDIA GeForce FX 5800 Ultra, так и на ATI RADEON 9700 Pro - при включении полноэкранного сглаживания у этих плат результаты снижаются не так сильно, как у NVIDIA GeForce4 Ti4800. Например, при включении полноэкранного сглаживания 2х результаты у ATI RADEON 9700 Pro и NVIDIA GeForce FX 5800 Ultra вообще практически не изменяются.
Примечательно, что NVIDIA GeForce FX даже на номинальных частотах уступает видеокарте на базе R300 при наложении одной текстуры, в то время как при мультитекстурировании опережает ATI RADEON 9700 Pro. Это может означать либо то, что у NVIDIA GeForce FX чрезвычайно неудачно построен контроллер памяти (во что верится с большим трудом), либо то, что GeForce FX в этом тесте использует конфигурацию, в которой чип имеет 4 пиксельных "конвейера" с двумя блоками выборки текстур в каждом.
Проверить это утверждение можно следующим тестом. Этот небольшой
тест выводит полигон, "накрывающий" экран целиком, при этом на полигон накладывается от 0 (текстуры нет, цвет пиксела рассчитывается как интерполяция цветов в вершинах полигона) до 4 текстур размером 512х512. Тест позволяет отключать запись цвета и запись Z. Итак, результаты тестирования в нормальном режиме - запись цвета разрешена, запись Z разрешена:
ATI RADEON 9700 Pro ведет себя вполне предсказуемо: имея по одному блоку выборки текстур в каждом пиксельном конвейере, он вынужден тратить дополнительный такт на наложение каждой дополнительной текстуры.
NVIDIA GeForce FX 5800 Ultra ведет себя поразительно похоже на GeForce 4 Ti4800 - переход от наложения одной текстуры к двум и от трех к четырем вызывает намного меньшее падение производительности по сравнению с переходом от наложения двух текстур к наложению трех текстур. Если добавить к этому наблюдению то, что даже при отсутствии текстур NVIDIA GeForce FX 5800 Ultra показывает меньше половины от теоретического максимума (1914,9 МПикс- в секунду при максимуме в 4000 МПикс/сек.), то можно сказать только одно - в нормальных условиях, при разрешенной записи цвета и Z, GeForce FX использует схему, соответствующую 4 "классическим" конвейерам с двумя текстурными модулями на каждом. То есть, при использовании мультитекстурирования чип может одновременно расчитывать лишь 4 пиксела, но зато способен наложить по две текстуры в каждом такте.
Теперь попробуем запретить запись цвета:
Ага! Игнорируя наложение текстур и запись полученных значений в буфер кадра, чип GeForce FX вышел на уровень теоретического максимума. Это значит, что в данном случае GeForce FX использует схему с 8 "конвейерами". Однако, при этом наложение текстур недоступно. Такой необычный режим работы может принести GeForce FX дополнительный прирост скорости в играх ближайшего будущего, например, Doom3, где для расчета освещения и теней отрисовка каждого кадра предваряется одним или несколькими проходами ускорителя, в которых инициализируется Z-буфер и буфер шаблонов. GeForce FX сделает предварительные проходы в 2 раза быстрее, чем финальный, обсчитывая сразу по 8 пикселов (точнее, значений Z) за такт. Однако, пока, в подавляющем большинстве существующих игр, такая оптимизация не принесет GeForce FX никакого преимущества.
Пиксельные шейдеры 1.1 и 1.4
Для проверки скорости исполнения пиксельных шейдеров DirectX 8.1 я использовал всё тот же тестовый пакет 3DMark 2001 SE. Как и ранее, GeForce FX 5800 Ultra тестируется на номинальных и пониженных частотах:
Этот несложный пиксельный шейдер GeForce FX при работе на частотах ATI RADEON 9700 Pro исполняет чуть медленее, чем R300, но при увеличении разрешения отставание GeForce FX 5800 Ultra уменьшается.
Работая на номинальных частотах, новая плата от NVIDIA, естественно, опережает конкурента.
Результаты прогона более сложного пиксельного шейдера повергают в уныние: даже на номинальных частотах NVIDIA GeForce FX 5800 Ultra значительно уступает ATI RADEON 9700 Pro. А на частотах 325/620 МГц GeForce FX отстает даже от GeForce4, при условии, что последний, не имея поддержки пиксельных шейдеров версии 1.4. вынужден строить сцену за два прохода.
Что это, расплата за повышенную гибкость, или результат "урезания" вычислительной мощности чипа, выразившийся в недостаточном количестве арифметичесих процессоров NV30? Возможно и то, и другое.
Пиксельные шейдеры 2.0
Для тестирования скорости исполнения пиксельных шейдеров версии 2.0 я взял тест из пакета 3DMark 03. Он выводит сцену с фигурками слона и носорога на подставке, причем, сложные материалы, из которых "сделаны" фигурки и подставка, представлены не в виде текстур, а рассчитываются в реальном времени с помощью пиксельных шейдеров версии 2.0, использующих большое количество арифметических вычислений с плавающей точкой.
Результаты тестирования - просто удручающие. NVIDIA GeForce FX 5800 Ultra проигрывает ATI RADEON 9700 Pro в разы, и это подтверждает отставание NV30 в скорости исполнения сложных пиксельных шейдеров, насыщенных вычислениями.
T&L и вершинные шейдеры
Посмотрим, как у нового чипа от NVIDIA обстоят дела с вершинными конвейерами. Сначала проверим, как GeForce FX будет исполнять функции классического "Fixed-Function" T&L DirectX 7:
NVIDIA GeForce FX, имея всего три вершинных конвейера вместо четырех у ATI RADEON 9700 Pro, опережает последнего даже на пониженных частотах. Функции блока T&L на этих чипах эмулируются вершинными шейдерами, и, видимо, NV30 имеет либо какие-то "обходные пути" или "рудименты" блока T&L, позволяющие повысить производительность, либо более оптимальным образом компилирует команды T&L в команды вершинных шейдеров, обеспечивая максимальную скорость исполнения команд T&L.
Преимущество GeForce FX пропадает, как только дело переходит к вершинным шейдерам. Помимо того, что NVIDIA GeForce FX имеет меньшее количество вершинных процессоров - три против четырех у R300, их производительность по результатам этого теста оказалась ниже, чему ATI RADEON 9700 Pro.
При переходе к вершинным шейдерам 2.0 соотношение результатов сохраняется - NVIDIA GeForece FX на номинальных частотах чуть отстает от ATI RADEON 9700 Pro. Отставание GeForce FX не радует, но здесь, к счастью, хотя бы нет таких сюрпризов, как в тесте пиксельных шейдеров.
И, наконец, последний синтетический тест на сегодня: Ragtroll из пакета 3DMark03:
Этот тест использует вершинные шейдеры версии 1.1 для трансформации моделей падающих троллей и программный расчет физики столконовений. Таким образом "движок" теста распределяет нагрузку между графическим чипом и центральным процессором.
Судя по результатам, тест ограничивается скоростью видеокарт: ATI RADEON 9700 Pro имеет более производительные блоки вершинных шейдеров и опережает GeForce FX 5800 Ultra примерно с таким же соотношением результатов, как в тестах вершинных шейдеров.
Первая часть: Архитектура CineFX, чип NV30 и плата GeForce FX 5800 Ultra.Вторая часть: Тестовая система. Синтетические тестыТретья часть: Режимы "Application", "Balanced" и "Aggressive", антиалиасинг и анизотропная фильтрацияЧетвертая часть: Тестирование в играхПятая часть: Игровые тесты 3DMark 2001 и 3DMark 03, Заключение