Обзор ATI RADEON X800 XT и X800 PRO (R420)
СОДЕРЖАНИЕ
- Официальные спецификации
- Архитектура
- Особенности видеокарт
- Конфигурации стендов, список тестовых инструментов, качество в 2D, качество Temporal AA
- Синтетические тесты в D3D RightMark
- Качество трилинейной фильтрации и анизотропии
- Качество АА
- Качество в целом на основе FarCry
- Результаты тестов: Quake3 ARENA
- Результаты тестов: Serious Sam: The Second Encounter
- Результаты тестов: Return to Castle Wolfenstein
- Результаты тестов: Code Creatures DEMO
- Результаты тестов: Unreal Tournament 2003
- Результаты тестов: Unreal II: The Awakening
- Результаты тестов: RightMark 3D
- Результаты тестов: TRAOD
- Результаты тестов: FarCry
- Результаты тестов: Call Of Duty
- Результаты тестов: HALO: Combat Evolved
- Результаты тестов: Half-Life2(beta)
- Результаты тестов: Splinter Cell
- Выводы
Итак, настал месяц май, позади поездка в Канаду (Торонто), где мы впервые познакомились с новинкой от ATI (тогда еще под кодовым названием R420).
Для желающих узнать об ATI Technology Days более подробно, даем ссылки на первый и
второй дни работы форума.
А сегодня мы уже сбросим завесу таинственности с новых продуктов и рассмотрим более детально. Почему во множественном числе? - Просто на базе
R420 выпускается в свет не одна карта, а несколько. На сегодня их две: RADEON X800 XT и X800 PRO. Более подробно - далее.
Недавно выходил наш материал по NVIDIA GeForce 6800 Ultra, и в анонсе этого материала высказывалось
предположение: надолго ли NV40 стал королем в 3D? Не сместит ли его R420 в самой мощной своей ипостаси?
Давайте сегодня познакомимся с новинкой от ATI и заодно попытаемся ответить на этот вопрос.
Официальные спецификации Radeon X800
- Кодовое имя чипа R420
- Технология 130нм (TMSC, low-k, медные соединения)
- 180 миллионов транзисторов
- FС корпус (перевернутый чип, без металлической крышки)
- 256 бит интерфейс памяти
- До 512 мегабайт DDR/GDDR-2/GDDR-3 памяти
- AGP 3.0 8x шинный интерфейс (также будет выпущенная PCI-Express версия чипа R423)
- 16 Пиксельных процессоров, по одному текстурному блоку на каждом (X800 PRO - 12 конвейеров).
- Вычисление, блендинг и запись до 16 полных (цвет, глубина, буфер шаблонов) пикселей за такт
- Вычисление и запись до 32 значений глубины и буфера шаблонов за такт.
- Поддержка «двустороннего» буфера шаблонов;
- MSAA 2x/4x/6х, с гибко программируемыми паттернами отсчетов. Сжатие буфера кадра и буфера глубины в MSAA режимах. Возможность менять MSAA паттерны от кадра к кадру (Temporal AA);
- Анизотропная фильтрация степени до 16х включительно
- 6 Вершинных процессоров
- Все необходимое для поддержки пиксельных и вершинных шейдеров версии 2.0
- Дополнительные возможности пиксельных шейдеров на основе расширенной версии 2.0 - т.н. 2.0.b
- Дополнительные возможности вершинных шейдеров, сверх базовых 2.0
- Новая техника сжатия текстур, оптимизированная для сжатия двухкомпонентных карт нормалей (т.н. 3Dc, степень сжатия 4:1).
- Поддерживается рендеринг в буфера плавающего формата, с точностью FP16 и FP32 на компоненту.
- Поддерживаются трехмерные и FP (плавающие) форматы текстур
- MRT
- 2 RAMDAC 400 МГц
- 2 DVI интерфейса
- TV-Out и TV-In интерфейс (требуются интерфейсные чипы)
- Возможность программируемой обработки видео - пиксельные процессоры задействуются для обработки видео потока (задачи компрессии, декомпрессии и постобработки)
- 2D ускоритель с поддержкой всех функций GDI+
Спецификации карт, ныне выпущенных на базе R420:
- RADEON X800 XT: 525/575 (1150) MHz, 256MB GDDR3, AGP 8x/4x, 16 пиксельных конвейеров ($499) - конкурент NVIDIA GeForce 6800 Ultra.
- RADEON X800 PRO: 475/450 (900) MHz, 256MB GDDR3, AGP 8x/4x, 12 пиксельных конвейеров ($399) - конкурент NVIDIA GeForce 6800 (?).
Общая схема чипа
Пытливый читатель сразу отметит, что схема практически совпадает с NV40. Ничего удивительного - обе фирмы, стараются создать
оптимальное решение, и уже несколько поколений исповедуют проверенную и эффективную организацию общей структуры графического конвейера. Существенные
отличия кроются внутри блоков и в первую очередь в пиксельных и вершинных процессорах.
Как и у NV40, в наличии шесть вершинных процессоров, и четыре независимых пиксельных процессора, каждый из которых работает с одним
квадом (фрагментом 2х2 пикселя). Скорее всего, в отличие от NV40, присутствует только один уровень кэширования данных текстур.
В наличии 4 независимых процессора квадов, каждый из которых может быть отключен - таким образом, в зависимости от потребностей рынка
и наличия бракованных чипов можно отключать один, два или даже три процессора, производя, таким образом карты,
обрабатывающие 4, 8, 12 или 16 пикселей за такт. Не исключено, что в будущем, энтузиасты будут так или иначе исследовать вопрос
обратной «активации» отключенных при производстве (и возможно бракованных) квадов, мы же пока оставим его в стороне.
А теперь, по традиции увеличим степень детализации в самых интересных местах:
Вершинные процессоры и выборка данных
Приведем блок схему вершинного процессора R420:
Собственно сам процессор на схеме обозначен желтым прямоугольником, остальные окружающие его блоки показаны для более полной картины.
Заявлено, что R420 содержит 6 независимых процессоров (мысленно скопируем желтый блок 6 раз). Есть информация, что вершинные
процессоры R420 поддерживают динамическое управление исполнением - т.е. переходы и циклы на основе принятых во время выполнения
шейдера решений, однако она требует проверки. Как бы там ни было - пока эта возможность не доступна в API. Но, несомненно, если
она есть, она будет использованы в OpenGL и там ничего не мешает задействовать ее полностью. В DX9, скорее всего, она
так и не появятся. Вершинные блоки не соответствуют ни полной спецификации VS 3.0 (отсутствует возможность доступа к текстурам) ни
расширенной спецификации 2.0 в понимании NVIDIA (т.н. 2.0.а).
Что касается арифметической производительности - то за один такт вершинный процессор R420 может выполнить одну векторную операцию (до 4-х
компонент FP32) и одну скалярную FP32 операцию одновременно, так же как и вершинный процессор NV40.
Напомним, как выглядит сводная табличка параметров вершинных процессоров современных ускорителей с точки зрения вершинных шейдеров DX9
| Версия вершинных шейдеров | 2.0 (R3XX, R42X) | 2.a (NV3X) | 3.0 (NV40) |
| Число инструкций в коде шейдера | 256 | 256 | 512 и более |
| Число исполняемых инструкций | 65535 | 65535 | 65535 и более |
| Предикаты | Нет | Есть | Есть |
| Временных регистров | 12 | 13 | 32 |
| Константных регистров | 256 и более | 256 и более | 256 и более |
| Статические переходы | Да | Да | Да |
| Динамические переходы | Нет (?) | Да | Да |
| Глубина вложенности динамических переходов | Нет | 24 | 24 |
| Выбор значений текстур | Нет | Нет | Да (4) |
Еще один интересный аспект, который мы исследуем далее - производительность эмуляции FFP (T&L). Напомним, что R3XX во многом проигрывал
чипам NVIDIA из-за отсутствия специальных аппаратных блоков расчета освещения, ускорявших эмуляцию T&L вот уже в трех поколениях чипов NVIDIA. Будем
надеяться, что разработчики ATI проанализировали число приложений до сих пор полностью или частично использующих T&L, сделали выводы и
исправили ситуацию, так или иначе.
Пиксельные процессоры и организация закраски
Рассмотрим пиксельную архитектуру R420 в порядке следования данных. Итак, после установки параметров треугольника нас ждет:
Остановимся на самых интересных фактах. Во-первых, если ранее в R3XX было максимум два процессора квадов, обрабатывающих за такт блок из
четырех пикселов (2х2) то теперь таких процессоров стало четыре. Они полностью независимы и каждый из них может исключаться из работы (например,
для создания облегченной версии чипа с тремя процессорами при наличии брака в одном из них).
Отметим, что во многом схема похожа на NV40, но есть и кардинальные отличия, на которых мы остановимся подробнее.
Итак, вначале треугольник разбивается на блоки первого уровня (8х8 или 4х4 в зависимости от разрешения рендеринга) и происходит первая ступень
отбрасывания невидимых блоков, на основе данных полностью размещенного на чипе мини Z буфера. Его объем не афишируется, но, судя по
всему, в R420 он занимает несколько менее 200 килобайт. Всего на этой стадии может быть откинуто до 4 блоков за такт, т.е. до 256 невидимых
пикселей.
Затем происходит вторая ступень разбиения - на сей раз, на квады размером 2х2 и происходит раннее отсечение полностью невидимых квадов, на
основе хранимого в видео памяти Z буфера второго уровня, с гранулярностью покрытия 2х2. Отметим, что в зависимости от режима MSAA один элемент
этого буфера может соответствовать 4 (нет), 8(MSAA 2х), 16 (MSAA 4х) или даже 24 (6х MSAA) точкам в буфере кадра, вот почему его выделение
в отдельную структуру, занимающую промежуточный уровень между мини буфером глубины полностью расположенном на чипе и окончательным буфером
глубины базового уровня. Таким образом в продуктах NVIDIA мы имеем дело с двухуровневой организацией HSR и буфера глубины, а в
продуктах ATI с трехуровневой. Далее, в синтетических тестах, мы обратим внимание на влияние этого фактора на производительность.
Затем происходит установка квадов, и их распределение по активным пиксельным процессорам. А далее и начинаются самые существенные
отличия R420 от NV40:
Алгоритм работы пиксельного процессора NVIDIA:
Цикл по командам шейдера
- Считать микрокод следующей команды
- Сконфигурировать текстурный модуль и все ALU
- Цикл по всем квадам в очереди
- Прогнать квад через процессор, TMU и ALU
- Конец цикла по квадам
Конец цикла по командам шейдера
Алгоритм работы пиксельного процессора ATI
Цикл по 4 фазам
- Цикл по все квадам в очереди
- Цикл по выбираемым текстурам в этой фазе (до 8)
- Выбрать значение текстуры
- Конец цикла по текстурам
- Цикл по вычислительным командам в этой фазе (до 128)
- Конец цикла
- Конец цикла по квадам
Конец цикла по 4 фазам.
Итак, NVIDIA постепенно исполняет команды (а точнее суперскалярные пачки команд, включая команды выборки текстур), прогоняя через каждую
команду все квады находящиеся в обработке. ATI же разбивает шейдер на четыре фазы (вот откуда ограничение на глубину зависимых
выборок не более 4), в каждой из которых сначала осуществляется выборка всех данных текстур необходимых для этой фазы, а затем уже
все вычисления над полученными данными. В том числе, и вычисление новых координат, для выборки текстур в следующей фазе.
Какой подход лучше? Сказать однозначно не возможно. Подход ATI хуже приспособлен к сложным шейдерам с управлением потоком команд или
многочисленными зависимыми выборками. С другой стороны вычисления внутри каждой из четырех фаз происходят по похожей на CPU схеме - выполняются
все команды, команда за командой, для одного квада, затем берется следующий квад и т.д. Таким образом, во время вычислений можно использовать
полноценный пул из временных регистров, без какой либо потери производительности и пенальти за использование более 4 регистров, которое мы имеем
в NV40. Кроме того, подход ATI требует менее длинных по числу стадий конвейеров. Следовательно, расходуется меньше транзисторов и
потенциально достигаются более высокие тактовые частоты (или, что одно и тоже более высокий выход годных чипов на фиксированной частоте).
Хорошо предсказуема производительность того или иного шейдера, легко написать код (не надо заботиться равномерной группировке текстурных и
вычислительных команд или расходе временных регистров).
Из недостатков - многочисленные ограничения. Ограничение на число зависимых выборок, ограничение на число команд в одной фазе,
необходимость хранить весь микрокод шейдера для 4 фаз «под рукой», т.е. прямо в пиксельном процессоре. Потенциальные задержки в
случае интенсивных зависимых выборок текстур следующих друг за другом (скрадываются наличием набора одновременно обрабатываемых квадов, но их число
не столь велико как у NVIDIA).
Фактически подход ATI оптимален для реализации шейдеров 2.0, без динамического контроля исполнения и достаточно ограниченной длинной. Любые
попытки «привинтить» к подобной архитектуре пиксельного процессора неограниченную длину шейдеров и тем более неограниченную гибкость в
текстурных выборках столкнется с проблемами.
На схеме пиксельного процессора обозначена логика F-буфера - механизма для записи и восстановления параметров временных переменных
шейдера. Это ухищрение позволяет исполнять шейдеры превышающие по длине или числу зависимых (да и обычных тоже) выборок текстур ограничения
пиксельного процессора, но, ценою дополнительных проходов, что само по себе не является бесплатным решением и далеко от идеала. По мере роста
сложности шейдера число проходов и сохраняемых временно в видеопамяти данных будет возрастать, а вместе с ними будет возрастать и штраф по
сравнению с NVIDIA подобными архитектурами, не ограниченными длинной или сложностью шейдера.
Что ж, реальные игровые приложения покажут, чей подход более оправдывает себя. А также выход годных и энергопотребление - не забываем, что
гибкость шейдеров NV40 дается ценой в 220 миллионов транзисторов - это число рискует попасть за порог стабильного оправданного по
себестоимости производства при технологии 0.13, и многое будет зависеть от того, как пойдет производство и борьба за выход годных.
Впрочем, вернемся к особенностям архитектуры пиксельных процессоров R420. Формат данных в процессорах при вычислениях - FP24, но в TMU, при
выборке текстур, операции с текстурными координатами проводятся с больше точностью. В этом плане, все как и в случае R3XX. На каждый пиксель приходится
по два ALU, причем каждое из них может выполнить две различные(!) операции по схеме 3+1 (как и в R3XX, но там ALU было одно). Подробнее об
этом вопросе см. DX Current. Не поддерживается произвольное маскирование и перестановка компонент после
операции, все только в рамках шейдеров 2.0 и чуть более длинных 2.0.b .
Таким образом, в зависимости от кода шейдера, может быть выполнено от одной до 4х различных FP24 операций за такт, над векторами (размерность
до 3) и скалярами и осуществлен один доступ к уже (!) выбранным из текстуры в данной фазе данным. Производительность такой связки
напрямую зависит от компилятора и кода, но очевидно, что мы имеем
- Минимум: один доступ к выбранным данным текстуры за такт
- Минимум: две операции за такт без доступа к текстуре
- Максимум: четыре операции за такт без доступа к текстуре
- Максимум: четыре операции за такт с доступом к текстуре
Что в пиковом варианте превышает возможности NV40. Но, не забываем, что реально это решение менее гибко (всегда схема 3+1) с
точки зрения совмещения команд в суперскалярные пачки при компиляции. Реальную эффективность покажут тесты. По сравнению с R3XX вычислительная
эффективность новых конвейеров выросла вдвое. Вкупе с двукратным увеличением их числа и приростом тактовой частоты, мы получаем
солидный теоретический задел по сравнению с предыдущим поколением.
Все новые усовершенствования, такие как увеличенная длинна шейдеров и новые регистры будут доступны в новой версии
шейдеров 2.0.b с выходом нового SDK и новой версии DirectX 9 (9.0c). А теперь - сводная таблица возможностей:
| Версия пиксельного шейдера | 2.0 (R3XX) | 2.a (NV3X) | 2.b (R420?) | 3.0 (NV40) |
| Вложенность выборок текстур до | 4 | Без ограничений | 4 | Без ограничений |
| Выборок значений текстур до | 32 | Без ограничений | Без ограничений | Без ограничений |
| Длинна кода шейдера | 32 + 64 | 512 | 512 | 512 и более |
| Исполняемых инструкций шейдера | 32 + 64 | 512 | 512 | 65535 и более |
| Интерполяторы | 2 + 8 | 2 + 8 | 2 + 8 | 10 |
| Предикаты | нет | да | нет | да |
| Временных регистров | 12 | 22 | 32 | 32 |
| Константных регистров | 32 | 32 | 32 | 224 |
| Произвольная перестановка компонент | нет | да | нет | да |
| Инструкции градиента (DDX/DDY) | нет | да | нет | да |
| Глубина вложенности динамических переходов | нет | нет | нет | 24 |
Отметим, что гибкость и возможности программирования пиксельных процессоров NV40 в DX9 пока находятся вне конкуренции.
А теперь вернемся к нашей схеме и обратим внимание на ее нижнюю часть. Там расположены блоки, отвечающие за сравнение и модификацию
значений цвета, прозрачности, глубины и буфера шаблонов, а также MSAA. В отличие от NV40, поддерживающей генерацию до 4х MSAA отсчетов на
основе одного пикселя, R420 генерирует до 6. Причем, производительность расчета Z и буфера шаблонов, как и у NV40 удвоена относительно
базовой скорости закраски - 32 значения в такт. Соответственно, 2х MSAA дается без пенальти по скорости, а 4х и 6х занимают 2 и 3 такта. Впрочем,
в случае использования пиксельных шейдеров длинной хотя бы в несколько команд, это пенальти перестает быть заметно и не играет
особой роли. Более важна пропускная способность памяти. Разумеется, в MSAA режимах сжимаются как данные о цвете, так и о глубине, в оптимальном
случае, коэффицент сжатия приближается к числу MSAA сэмплов, т.е. в режиме MSAA 6х достигает 6:1
В отличие от NV40, использующей RGMS (повернутую сетку отсчетов), R420, как и все чипы семейства R3XX, поддерживает псевдостохастические
паттерны MSAA, на базовой сетке 8х8. В итоге, качество сглаживания краев и наклонных линий объективно выше, особенно если
учесть наличие 6х режима (8х NVIDIA не сравним по производительности, т.к. он является гибридом - SSAA на основе
двух блоков MSAA 4х). В новых драйверах доступен т.е. Temporal AA - временной АА. Суть его в простом изменении
паттернов от кадра к кадру - таким образом, если картинка соседних кадров будет без проблем (слишком заметного мерцания) усредняться
нашим глазом (или интертным ЖК монитором), мы получим некое улучшение качества сглаживания, словно мы использовали больше отчетов MSAA. Производительность
при этом не падает, но и эффект может проявляться по разному, в зависимости от монитора и частоты расчета кадров в приложении.
Технологические новшества
Два основных новшества R420 по сравнению с R3XX (увеличение числа временных регистров и длинны шейдера в пиксельном процессоре
мы причисляем к эволюционному развитию, а не революционным новшествам):
- Новый алгоритм F-буфера позволяющий не вычислять тот или иной проход разбитого на части пиксельного шейдера для тех пикселей, которые в
этом не нуждаются. Способен заметно оптимизировать производительность пиксельных шейдеров с условиями и ветвлениями в OpenGL, исполняемых в
несколько проходов с помощью F-буфера.
- Новый метод компрессии текстур 3Dc специально предназначенный для сжатия двухкомпонентных карт нормалей. Традиционные методы компрессии текстур
рассчитаны на обычные текстуры - сжатие с потерями учитывает особенности нашего зрения в восприятии изображений. Однако они не подходят
для сжатия карт нормалей - по сути, таблиц векторов. Что хорошо для картинки с цветами в RGB формате плохо для
векторов и наоборот. Поэтому, давно назрела необходимость в специальном алгоритме сжатия карт нормалей, разумеется, поддержанном аппаратно
в TMU графических ускорителей. 3Dc и займет это место. Впрочем, с точки зрения разработчиков, плохо, что пока он не поддерживается NVIDIA.
Платы
|
ATI RADEON X800 XT/PRO
|
|
|
Карты имеют интерфейс AGP x8/x4, 256 МБ памяти GDDR3 SDRAM
размещенной в 8-ми микросхемах на лицевой и оборотной сторонах PCB.
|
|
ATI RADEON X800 XT
|
|
Микросхемы памяти Samsung (GDDR3).
Время выборки у микросхем памяти 1.6ns, что соответствует частоте работы
625 (1300) МГц, память же работает на частоте 575 (1150) МГц. Частота работы GPU 525 MHz.
Шина обмена с памятью - 256 bit.
|
|
|
ATI RADEON X800 PRO
|
|
Микросхемы памяти Samsung (GDDR3).
Время выборки у микросхем памяти 2.0ns, что соответствует частоте работы
500 (1000) МГц, память же работает на частоте 445 (890) МГц. Частота работы GPU 475 MHz.
Шина обмена с памятью - 256 bit.
|
|
|
Сравнение с эталонным дизайном, вид спереди
|
|
ATI RADEON X800 XT/PRO
|
ATI RADEON 9800 XT
|
|
|
|
NVIDIA GeForce 6800 Ultra
|
|
|
|
Сравнение с эталонным дизайном, вид сзади
|
|
ATI RADEON X800 XT/PRO
|
ATI RADEON 9800 XT
|
|
|
|
NVIDIA GeForce 6800 Ultra
|
|
|
Очевидно, что дизайн R420 очень похож на своего предшественника - R360. Только из-за того, что используется GDDR3 память, несколько изменена разводка.
Судя по всему, по контактам R420 полностью совместим с R360. Обратим также внимание на то, что разъем для внешнего питания по-прежнему один, да
и карты «кушают» сильно меньше, чем NV40. Отметим, что у нас пока лишь опытные образцы, поэтому мы не знаем, такими же одинаковыми пойдут
в серию X800 XT и PRO, или все же финальные карты будут чем-то отличаться.
А что же с системой охлаждения сделали? Как ее изменили?
ATI RADEON X800 XT/PRO |
|
А ее просто обрезали по краям!
Перед нами все тот же медный кулер с вынесенным влево вентилятором, который вращается на высоких оборотам только при эксплуатации карты в тесном
корпусе без продувки. Да, GDDR3 память не требует принудительного охлаждения, поэтому кулер упрощен.
|
|
|
Итак, мы увидели, что по внешнему виду X800 практически не отличается от предшественника, унаследовав и все положительные черты, как то меньшая
требовательность к мощности, однослотовая система охладения.
|
ATI RADEON X800 XT/PRO
|
NVIDIA GeForce 6800 Ultra
|
|
|
Также интересно заметить, что семейство Х800 сразу же оснащено поддержкой VIVO при помощи старого доброго RAGE THEATER, когда как на 9800ХТ
мы могли видеть распайку под новый Theater 200, но карт с ним так нам и не встретилось. Только лишь ASUS делал 9800ХТ с VIVO.
Давайте посмотрим теперь на сам чип. Вначале сравним размеры кристаллов у R360, R420 и NV40:
Прекрасно видно, что размеры кристалла у R420 выросли по сравнению с R360, несмотря на более тонкий техпроцесс. Все же 180 млн. транзисторов против
115 млн. - играют большую роль. И все же, самый огромный по площади кристалл - это NV40 с его 222 млн. транзисторами.
Далее сам чип вместе с корпусом:
Изготовлены кристаллы примерно в конце марта-начале апреля, то есть совсем «свежие» :-). Заметим, что никаких видимых отличий, как и по маркировке
так и по расположению резисторов на подошве между чипами не видно. Поэтому снова напрашивается мысль, что урезание по конвейерам сделано программным
путем через драйвера. Мы это будем еще проверять. Но если это окажется верным, то слова ведущего сотрудника ATI, сказанные им в интервью в офисе ATI
о том, что больше программных урезок не будет, как-то странно сочетаются с практикой.
Теперь по разгону. Благодаря оперативности автора RivaTuner Алексея Николайчука, эта утилита уже умеет определять частоты у R420.
И вот что мы видим у X800 XT:
К сожалению, карта практически не разгоняется, изменение частот даже на малые интервалы приводит к их сбросу драйвером.
А вот частоты X800 PRO:
Разгон здесь возможен, и составил 540 МГц по чипу и 580 (1180) МГц по памяти. Ради проверки работы карты на частоте X800 XT мы зафиксировали частоты
разгона 525/575 (1150) МГц и протестировали X800 PRO на них.
Установка и драйверы
Конфигурации тестовых стендов:
- Компьютер на базе Pentium 4 3200 MHz: - использовался для тестирования в синтетике
- процессор Intel Pentium 4 3200 МГц;
- системная плата ASUS P4C800 Delux на чипсете i875P;
- оперативная память 1024 MB DDR SDRAM;
- жесткий диск Seagate Barracuda IV 40GB;
- Компьютер на базе Athlon 64 3200+: - использовался для тестирования в играх
- процессор AMD Athlon 64 3200+ (L2=1024K);
- системная плата ASUS K8V SE Deluxe на чипсете VIA K8T800;
- оперативная память 1 GB DDR SDRAM PC3200;
- жесткий диск Seagate Barracuda 7200.7 80GB SATA.
- операционная система Windows XP SP1; DirectX 9.0b;
- мониторы ViewSonic P810 (21") и Mitsubishi Diamond Pro 2070sb (21").
- драйверы ATI версии 6.444 (CATALYST BETA); NVIDIA версии 60.72 (версия 61.11 вышла, когда обзор готов).
VSync отключен, технология S3TC ОТКЛЮЧЕНА в приложениях.
Рассматривать бету-версию драйверов для этих карт нет смысла, ибо в ней все настройки те же самые, что и в обычном CATALYST 4.4.
А вот способ включения так называемого Temporal AA имеется, пока только лишь через registry:
Обратите внимание на переменную TemporalAAMultipler! Именно она и отвечает на включение такого АА. Значения 0 и 1 - это Temporal AA
выключен, 2 и 3 - включен. Последние значения между собой отличаются лишь частотой смены паттернов (3 - самая высокая).
Переменная TemporalAAFrameThreshold выставляет минимальный FPS, при котором начинает работать Temporal AA, при значении 0 - он работает
всегда. Например, если задать этой переменной значение 60, то при скорости в игре ниже 60 fps Temporal AA работать не будет.
Поскольку сам принцип работы этой функции основан на восприятии глазом и особенности работы люминофора (или LCD матрицы), то заснять на скриншотах
работу Temporal AA невозможно. Могу лишь сказать, что при сильном отклонении FPS от частоты развертки по краям близко расположенных объектов мы
можем наблюдать небольшое подрагивание (мерцание). Я попробовал фотокамерой нечто подобное запечатлеть, вот что вышло (7 MB) (смотрите на край толстой балки,
АА работает именно там, а на решетке его нет, поскольку она выполнена на полупрозрачной текстуре, с которыми, как известно, MSAA не работает).
Результаты тестов
Перед тем, как кратко дать оценку качеству в 2D, я еще раз дам пояснение, что
на настоящий момент НЕТ полноценной методики объективной оценки
этого параметра по следующим причинам:
- Практически у всех современных 3D-акселераторов качество 2D может сильно зависеть от конкретного
экземпляра, а отследить все карты невозможно физически;
- Качество 2D зависит не только от видеокарты, но и от монитора, соединительного кабеля;
- В последнее время огромное влияние на этот параметр стали оказывать связки: монитор-карта, то есть, встречаются мониторы, "не дружащие" с теми или иными видеокартами.
Что касается протестированных экземпляров, то совместно с Mitsubishi Diamond Pro 2070sb
платы продемонстрировали отменное качество в следующих разрешениях и частотах:
|
ATI RADEON X800 XT
|
1600x1200x85Hz, 1280x1024x120Hz, 1024x768x160Hz
|
|
ATI RADEON X800 PRO
|
1600x1200x85Hz, 1280x1024x120Hz, 1024x768x160Hz
|
Синтетические тесты D3D RightMark
Использованная нами версия пакета синтетических тестов D3D RightMark Beta 4 (1050) и ее описание доступна
на сайте http://3d.rightmark.org
Еще раз отмечу, что все тесты в RightMark снимались на компьютере на базе Pentium4.
Параметры D3D вы можете посмотреть здесь:
D3D RightMark: NV40, NV38, R360, R420
DX CapsViewer: NV40, NV38, R360, R420
Внимание! Замете, что в текущей версии DirectX в паре с текущими драйверами возможности пиксельных 2.0.b пока
не доступны. Этот вопрос разрешится с выходом DirectX 9.0c и новой версии SDK, которая также скоро будет доступна.
Все тесты включают в себя результаты из обзора NV40, поэтому мы прокомментируем только отличия и характер
поведения R420 (Radeon X800 XT) и R420 с12 конвейерами (Radeon X800 PRO) . Итак:
Тест Pixel Filling
Пиковая производительность выборки текстур (texelrate), режим FFP, для разного числа текстур накладываемых на один пиксель:
Теоретический максимум R420 в этом тесте 8.4 гигатекселов в секунду. В действительности мы достигли 7.5 гигатекселов, что однозначно
свидетельствует о наличии 16 текстурных модулей. В случае одной текстуры лидирует NVIDIA - выборка одной текстуры происходит
у нее более эффективно из-за особенностей архитектуры пикслельного процессора - в случае R420 это не оптимальный
вариант из-за накладных расходов или иных вопросов связанных с наличием только одной очень короткой фазы в этом тесте. На 2х и
трех текстурах R420 он расправляет крылья и уделывает NV40. Более высокая тактовая частота ядра (шутка ли 125 МГц разницы
умножить на 16 конвейеров) дает себя знать. Скачков между четными и нечетными числами (свойственных конфигурациям
с двумя TMU на пиксель нет ни у одного участника теста
А сейчас - скорость закраски буфера кадра (fillrate, pixelrate), режим FFP, для разного числа текстур накладываемых на один пиксель:
Итак, NV40 побеждает R420 на одной текстуре или константной закраске и проигрывает во всех остальных режимах. Пиковая скорость
работы с буфером кадра (0 текстур -закраска цветом и одна текстура) выше у NVIDIA. Выборка текстур, по мере увеличения их
числа - лучше у ATI. Помогает более высокая тактовая частота ядра.
Посмотрим, как скорость закраски зависит от версии шейдеров:
та же картина что и в случае FFP,
Опять та же расстановка сил,
Итак, в пиковом случае отсутствия текстурирования или одной текстуры NV40 смотрится лучше, несмотря на более низкую тактовую
частоту. Это говорит о хорошей работе с буфером кадра. Но, реальные задачи уже давно не ограничиваются одной текстурой.
Отметим, что теперь использование разных версий шейдеров практически не влияет на скорость - странности NV3X канули в лету
и теперь результаты вполне предсказуемы и линейны.
Итак, вырисовывается следующая картина предпочтений:
Версия |
1.1 |
1.4 |
2.0 |
NV40 |
Оптимально |
Оптимально |
Оптимально |
NV38 |
Оптимально |
Оптимально |
Не оптимально |
R360 |
Оптимально |
Не оптимально |
Оптимально |
R420 |
Оптимально |
Оптимально |
Оптимально |
А теперь посмотрим, как текстурные модули справляются с кэшированием и билинейной фильтрацией реальных текстур различных размеров:
Приведены данные для разных размеров текстур, одна и две текстуры на пиксель. Интересно, что ATI хронически не любит случай
с одной текстурой. Даже если ее размер вполне значителен! Очень странное поведение. Видимо сказывается некая накладная задержка при
переключении фаз и окончании исполнения шейдера? Или так проявляется латентность конвейера в текстурном модуле? Как бы там
ни было, в случае двух текстур все встает на свои места. В этом тесте NVIDIA выглядит неплохо, особенно по мере
роста размера текстуры. Даже более высокая тактовая частота ATI не дает R420 доминировать во всех случаях - выборка текстур всегда
была сильной стороной NVIDIA. Однако и NV40 никоим образом не выигрывает у R420. Лучше >= чем <= :-) - таким образом, R420 победитель.
Посмотрим, как изменится картина в случае трилинейной фильтрации:
Вот это да! Здесь NV40 еще ближе подбирается к R420. Наличие мип уровней позволяет эффективно кэшировать данные текстур. И здесь
двухуровневый кэш NV40 не прошел даром. В итоге, назвать результаты R420 выигрышными или проигрышными нельзя - на
лицо паритет с шатким равновесием - с одной стороны лучше чувствует себя NVIDIA с другой ATI.
Напоследок предельный случай восьми трилинейно фильтруемых текстур:
Здесь все в соответствии с частотой и числом конвейеров. Лидер - ATI.
А теперь посмотрим на зависимость производительности текстурных модулей от формата текстур:
Больше размер:
Интересная картина. NV40 более эффективно кэширует текстуры. Двухуровневый кэш рулит. R420 сравнимо эффективно работает с
большими текстурами (все уперлось в память, а ПСП примерно равна), существенно лучше справляется с сжатыми текстурами. Почему ATI
так выигрывает, даже у NV40, в случае больших размеров сжатых текстур? Ответ прост - в текстурном кэше NVIDIA хранятся уже
распакованные текстуры, приведенные к формату 32 бита. В текстурном кэше ATI - все еще сжатые. С одной стороны эффективность
выборки текстур NVIDIA будет выше - меньше простоев во время распаковки, меньше задержка, с другой стороны при большом размере текстур
фактор занимаемого ими места может вывести ATI в лидеры - NV40 упрется в пропускную полосу памяти и даже 16 TMU его не спасут. Что собственно
и происходит на втором графике. В реальных приложениях баланс может склониться как в ту, так и в иную сторону, в зависимости от
шейдеров, числа и размера текстур и прочих параметров сцены.
Итак, в общем и целом, можно констатировать два факта:
- R420 чемпион по закраске, особенно на 2х и более текстурах. Впрочем, легендарная эффективность работы TMU и буфера кадра от NVIDIA по-прежнему
в силе, в тех случаях, когда им таки удается успешно конкурировать с более высокой тактовой частотой R420. Судя по всему, в реальных
приложениях, R420 еще более усилит свои позиции - эти тесты показывают нам пиковые ситуации, а в случае смеси, неожиданные положительные
скачки NVIDIA в некоторых режимах будут сглажены.
- Какие либо досадные неравномерности поведения на пиксельных шейдерах любой версии отсутствуют как класс - можно свободно выбирать
удобную для решения ваших задач версию.
Тест Geometry Processing Speed
Самый простой шейдер – предельная пропускная способность по треугольникам:
Итак, R420 лидер и его пиковая скорость прекрасно масштабируется вместе с частотой ядра. Почему результаты NV40 почти не
превышают предыдущего поколения? Вопрос сложный. Судя по всему вершинные процессоры чипа просто не разворачиваются в полную силу
на столь примитивной задаче. Проверим наше предположение далее, на более сложных задачах. А пока отметим, что характер зависимости скорости
R420 от версии шейдера очень точно повторяет R3XX. А именно - зависимость отсутствует как класс :-)
Более сложный шейдер – один простой точечный источник света:
Ага! Свершилось, наконец-то ATI озаботилась эффективной эмуляцией T&L и реализовала ее. Теперь скорость не ниже, она выше, пусть и на
немного. Те же 6 вершинных блоков на более низкой частоте у NV40 приводят к проигрышу, пусть и не очень значительному, но обидному.
Усложняем задачу далее:
Здесь NV40 FFP лидер, несмотря на частотное преимущество ATI. FFP отрывается от шейдеров и в случае R420 - мы вновь находим подтверждение
нашей гипотезе о дополнительных аппаратных блоках, теперь и у ATI. Впрочем, у NVIDIA они эффективнее. Но общая картина складывается
скорее в пользу ATI.
А теперь самая сложная задача, три источника света, причем, для сравнения в вариантах без переходов, со статическим и динамическим управлением
исполнением:
FFP силен, а статические переходы заметно ударяют по чипам NVIDIA. Парадокс в том, что динамические переходы на чипах от NVIDIA выгоднее
статических. В случае ATI все достаточно ровно, FFP практически равен шейдерам, и общая картина вновь в пользу R420..
Итак :
- Наконец то FFP R420 стал заметно быстрее, чем у R3XX. Слабое место устранено, так или иначе.
- Статические переходы на ускорителях NVIDIA исполняются не оптимально.
- R420 позволяет получать ровные результаты на всех типах шейдеров. Никаких досадных аномалий, как в случае R3XX (FFP) или NV40 (статические
переходы) не наблюдается. Статические переходы на ускорителях NVIDIA исполняются не оптимально.
- Напомним, что динамические переходы не поддерживаются R420.
Тест Pixel Shaders
Первая группа шейдеров – достаточно простых для исполнения в реальном времени, 1.1, 1.4 и 2.0:
В общем и целом R420 лидер. Хотя, порой, NV40 наступает ему на пятки. И даже чуть обгоняет в случае шейдеров 1.4 - вот
парадокс, детище ATI ноне уютнее всего чувствует себя на продуктах NVIDIA. Старые добрые пиксельные конвейеры R3XX качественно разогнаны
и оптимизированы. А производительность шейдеров 1.1 просто потрясает - описанная выше организация пиксельного
конвейера с фазами очень близка к исходным архитектурам шейдеров 1.1.
Посмотрим, сможет ли спасти положение NV40 использование 16 битной точности плавающих чисел:
Преимущество 16 битной точности для NV40 есть, в некоторых шейдерах больше, в некоторых меньше. Но оно не позволяет отыграть
пальму первенства у R420. Частота и еще раз частота.
А теперь посмотрим на действительно сложный, «кинематографичный» шейдер 2.a в силу небольшого числа зависимых выборок
уложившийся в ограничения пиксельных конвейеров R420:
Здесь NV40 чувствует себя увереннее - ее архитектура очень хорошо приспособлена к длинным и сложным шейдерам, но, все равно
не выигрывает у R420, даже в случае использования 16 битной точности. А ведь есть где развернуться - много выборок текстур, множество
временных переменных, сложный код. Вот почем разница 16 и 32 бит столь заметна.
На последок, исследуем зависимость скорости от использования арифметических или табличных методов вычисления sin, pow
и нормализации векторов, отдельно для всех чипов:
Итак, R420 зависит от разных методов, еще меньше чем R3XX. Гордость ATI - предсказуемая и ровная архитектура для оптимального
исполнения любых 2.0 шейдеров. Вычисления или таблицы - ATI показывает себя ровно и предсказуемо. Лидерство без лишних проблем и аномалий.
Итого, по пиксельным шейдерам :
- Производительность вне конкуренции.
- Вредных аномалий нет.
- Динамического управления вычислениями нет
- Шейдеры 1.1 феноменально быстры.
- Остальные шейдеры просто очень быстры, и, надо отметить, быстрее NV40.
Тест HSR
Для начала пиковая эффективность (без текстур и с текстурами) в зависимости от сложности геометрии:
Заметно, что ATI лучше переносит средние и сложные сцены - сказывается наличие двух уровней уменьшенных Z буферов (кроме базового). У NVIDIA
традиционно один дополнительный уровень, поэтому эффективность HSR в случае оптимального баланса сцены (средняя сложность)
несколько ниже. Видно, что сам алгоритм HSR не поменялся - эффективность R350 и R420 практически эквивалентна - а значит и соотношение отбрасываемых
за такт и закрашиваемых пикселей не изменилось. Зато абсолютные цифры существенно возросли:
Но не до уровня NV40 на сценах с низкой и средней детализацией! Зато на большой детализации и высоком факторе перекрытия ATI
отыгрывается. Простая без затей закраска, вкупе с HSR, на чипах NVIDIA очень эффективна. И это несмотря на наличие только одного
дополнительного уровня иерархии.
Вывод :
- Алгоритм HSR не претерпел серьезных изменений
- Но его общая производительность увеличилась, что нормально, учитывая большее число отправляемых на отрисовку (или отбрасываемых) за
такт квадов.
Тест Point Sprites.
Спрайты давно перестали быть популярным новшеством и зачастую проигрывают треугольникам по скорости вывода. ATI лучше справляется
с этой задачей, NV40 упирается в какую то странную планку, а R420 наоборот, прекрасно масштабируется и четкий лидер.
Тест MSAA
В пиковом случае MSAA NVIDIA эффективнее. Падение на 4х ниже. Но, надо это признать, сглаживание NVIDIA несколько ниже качеством. Хорошо
заметно, что 8х у NV40 является гибридной установкой с использованием SSAA - скорость падает ниже допустимого уровня. Зато 6х практически не
отличается у R420 от 4х и это можно только приветствовать.
Выводы по синтетическим тестам
- Работа над ошибками, которых почти не было, состоялась.
- Задел на будущее ощутим, если не считать вопросов гибкости. Гибкость проигрывает NV40
- Производительность вне конкуренции.
- R420 видится нам более успешным для игровых приложений, NV40 возможно найдет свое применение в DCC и иных профессиональных нишах
требующих исполнять длинные и сложные шейдеры.
- Меньшая сложность и потребление сыграли свою положительную роль. Тактовая частота выше, и производительность вне конкуренции. Возможно, в
скором времени они сыграют роль и в снижении стоимости. Прекрасное решение на сегодня.
Качество трилинейной фильтрации и анизотропии (High Quality)
|