ATI RADEON 9700 Pro 128MB


" Это он, это он, это новый Radeon!"
(почти по Маршаку)

Для начала, настоятельно рекомендуем прочитать аналитическую статью, посвященную архитектуре и спецификациям RADEON 9700 (R300)

СОДЕРЖАНИЕ

  1. Общие сведения
  2. Теоретические аспекты реализации анитиалиасинга и анизотропной фильтрации
  3. Особенности видеокарты ATI RADEON 9700 Pro 128MB
  4. Конфигурации тестовых стендов и особенности настроек драйверов
  5. Результаты тестов: коротко о 2D, предельные из DirectX 8.1 SDK и синтетические (на базе DirectX 9.0) тесты
  6. Результаты тестов: Синтетические тесты 3DMark2001 SE
  7. Результаты тестов: Игровые тесты 3DMark2001 SE
  8. Результаты тестов: Quake3 ARENA
  9. Результаты тестов: Serious Sam: The Second Encounter
  10. Результаты тестов: Return to Castle Wolfenstein
  11. Результаты тестов: Code Creatures DEMO
  12. Результаты тестов: Comanche4 DEMO
  13. Результаты тестов: Unreal Tournament 2003 DEMO
  14. Результаты тестов: AquaMark
  15. Результаты тестов: RightMark 3D
  16. Качество 3D: Анизотропная фильтрация
  17. Качество 3D: Анти-алиасинг
  18. Качество 3D в целом
  19. Выводы

Результаты тестов

2D-графика

Традиционно начнем с 2D. Несмотря на высокую частоту и сложность карты, качество 2D выше всяких похвал! Что самое интересное, можно заметить увеличенную насыщенность (сочность) цветов (специально переключал монитор с компьютера с RADEON 9700 на компьютер с RADEON 8500, чтобы сравнить). Мы остались очень довольны качеством 2D.

Казалось, еще Ленин говорил, что оценка 2D-качества есть вещь субъективная. Поэтому напомню, что качество зависит от конкретного экземпляра, а также связка карта-монитор может по-прежнему играть огромную роль, прежде всего надо обращать внимание на качество монитора и кабеля.

3D-графика, MS DirectX 8.1 SDK — предельные тесты

На этот раз мы планировали полностью перейти к тестированию предельных характеристик с помощью прототипов синтетических тестов, разрабатываемых нами в рамках проекта открытого графического теста RightMark 3D. Однако из-за отсутствия в драйверах поддержки основных возможностей DX9 мы приняли решение использовать два старых (и уже хорошо знакомых читателям) теста на основе примеров из DX 8.1 SDK и пока не рассматривать некоторые из наших новых DX9 тестов.

Итак, для тестирования различных предельных характеристик чипов мы использовали модифицированные (для большего удобства и контроля) примеры из последней официальной финальной версии DirectX SDK (8.1).

EMBM рельеф

В этом тесте мы измеряем производительность, а точнее — ее падение, возникающее при использовании наложения карт среды (Environment) и рельефа на основе карт среды (EMBM — Environment Mapped Bump Mapping). Кроме того, мы измеряем филрейт обычного одинарного текстурирования. Тестирование проводилось в разрешении 1280*1024 — мы находим это разрешение оптимальным для предельных тестирований современных карт:

Взгляните на красные столбики RADEON 9700 PRO. Бросается в глаза удручающее падение скорости закраски при использовании EMBM. Столь радикальное падение ставит RADEON 9700 PRO (aka R300), снабженный 256-битным интерфейсом памяти, на одну ступень с предыдущим поколением чипов (в EMBM режиме, разумеется)! Если в обычном текстурировании мы наблюдаем значительное преимущество над всеми конкурентами, то с включением карты среды оно уменьшается. Остальные карты практически не теряют производительности — они могут задействовать второй текстурный блок, а у R300 его нет. При активации EMBM комбинируется уже 3 текстуры. Но и это не все: в случае EMBM одна текстура выбирается на основе значений, полученных из другой, и, как мы видим, подобная схема особенно больно бьет по пиксельным конвейерам R300.

Производительность пиксельных шейдеров 1.0

Мы вновь использовали модифицированный пример MFCPixelShader, измерив производительность карт в высоком разрешении при выполнении 5 различных по сложности шейдеров, для билинейно фильтрованных текстур:

Вновь ситуация неоднозначна. На предельно простом коротком шейдере преимущество R300 очевидно, сказывается наличие 8 конвейеров. Однако по мере усложнения шейдера скорость падает, причем быстрее, чем у остальных соперников, и на сложной задаче R300 располагается практически на одной ступени с NV25(!). Ситуация очень близко напоминает ту, что мы видели в обзоре P10 и, видимо, в той или иной мере будет свойственна всем ускорителям нового поколения, способным исполнять большие пиксельные шейдеры. Впрочем, если сравнить между собой результаты R200 и R300 — прогресс налицо, и более чем двукратный.

Подобное падение производительности вызвано двумя причинами:

  • во-первых, уже отмеченный нами аспект наличия лишь одного текстурного блока, который вызывает заметное падение производительности при активации каждой следующей текстуры, а не пары текстур? как у других чипов.
  • Во-вторых, не забываем, что все остальные чипы снабжены пиксельными стадиями и выполняют шейдеры версии 1.X вдвое или вчетверо быстрее, чем по команде за такт, в то время как R300 выполняет шейдеры покомандно, пускай и 8 параллельными конвейерами. Мы уже не раз рассуждали на этот счет в аналитике по R300 и обзоре P10, и в этом обзоре вновь находим наглядное подтверждение наших аналитических выводов в результатах синтетических тестов.

Кроме того, внимательный читатель может заметить, что NV25 и P512 снабжены, как минимум, 4 стадиями на один пиксельный конвейер, а R200, судя по всему, — лишь двумя. С другой стороны, наличие четырех текстурных модулей не сильно помогает P512 — невысокая тактовая частота является сдерживающим фактором, и наиболее хорошо с точки зрения исполнения пиксельных шейдеров первой версии сбалансирован NV25.

Не следует забывать, что конкурировать R300 придется в первую очередь с NV30, о производительности которого мы пока можем делать лишь очень зыбкие суждения, основанные на ориентировочной тактовой частоте, наличии двух текстурных блоков на конвейер и покомандном исполнении шейдеров (также, как и у R300).

3D-графика, MS DirectX 9 SDK (beta 2) — синтетические тесты

Для тестирования остальных предельных характеристик чипа мы использовали прототипы наших новых синтетических DX9 тестов, созданные в рамках проекта RightMark 3D.

GPU Speed — геометрическая производительность

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

  1. Константное (ambient lighting)
  2. Рассеянное (1 точечный источник)
  3. Рассеянное (2 точечный источника)
  4. Рассеянное (3 точечных источника)
  5. Рассеянное + блики (1 точечный источник)
  6. Рассеянное + блики (2 точечных источника)
  7. Рассеянное + блики (3 точечных источника)

И четыре режима работы:

  1. Традиционный TCL (Fixed-Function Pipeline)
  2. Вершинные шейдеры 1.1
  3. Вершинные шейдеры 1.1 и пиксельные шейдеры 1.1
  4. Вершинные шейдеры 2.0 и пиксельные шейдеры 2.0

Позже, в тест будет добавлено несколько характерных задач анимации и трансформации геометрии.

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

Приведем результаты для "традиционного" TCL как в аппаратном режиме, так и в случае программной обработки вершин:

Как мы видим, вновь R300 на высоте в самой простой задаче. Обратите внимание на внушительную цифру в 106 миллионов трансформированных и вершин в секунду (!). И вновь, его позиция в остальных (более сложных) задачах неоднозначна. Скажем так, R300 становится "сравним" с NV25 и P512, что никак нельзя назвать блестящим результатом для чипа нового поколения. Также отметим, что в режиме программной трансформации по прежнему лидирует поддерживающий FastWrites NV25 — а результаты R300 в этом вопросе, к сожалению, все там же — на уровне R200 и P512.

Но, не будем забывать, что это тест старого, в некотором роде рудиментарного TCL. Предыдущие чипы, даже не имея выделенного фиксированного TCL блока, были заточены для его эффективной эмуляции. Возможно, что при разработке R300 такая задача не ставилась. Давайте теперь посмотрим, как обстоят дела с трансформацией и освещением на основе вершинных шейдеров:

Ага! Наши предположения про эмуляцию TCL оказались верны — в задаче исполнения шейдеров R300 на высоте. Как и следовало ожидать — новый чип в среднем опережает NV25 вдвое, а своего предшественника R200 — даже втрое. Результаты R300 хорошо согласуются с полученными в TCL режиме, что говорит об отсутствии какой-либо специально усиленной эмуляции оного. Итак, в этом тесте R300 выходит четким победителем, демонстрируя отрыв, достойный нового поколения.

В программном режиме, вновь лучше всех показывает себя NV25. На более или менее сложных шейдерах программная эмуляция выполняется крайне неспешно. Впрочем, пока еще очень сложно представить себе реальное приложение, способное нарисовать 30 или 40 миллионов треугольников, а посему в реальных задачах эмуляция может оставаться приемлемой.

А теперь проверим зависимость теста от разрешения:

Как мы видим, тест не зависит от разрешения, но при этом четко зависит от сложности модели освещения, что, собственно, и требовалось.

Point Sprites

Этот тест призван измерять производительность вывода точечных спрайтов. Тест всегда использует полупрозрачные спрайты, т.к. большинство реальных эффектов на основе систем частиц (для которых они и предназначены) требуют наличия полупрозрачности и смешения (блендинга). Доступны два режима: с освещением каждого спрайта источниками света и без. Можно регулировать размер выводимых спрайтов.

Как мы видим, при тестировании без освещения на небольших размерах спрайтов (до 4 точек включительно) R300 проигрывает даже R200 (!), не говоря уже о NV25. Однако с ростом размеров спрайтов он занимает лидирующее положение — сказывается наличие 256-битной шины памяти. Чем больше размер спрайтов — тем активнее идет общение с кадровым буфером во время блендинга.

И при освещении общая картина зависимости та же, но на сей раз разница не столь бросается в глаза — особенно на маленьких размерах спрайтов. Видимо, все упирается в трансформацию и освещение. По мере роста размеров R300 начинает лидировать вновь, благодаря существенному преимуществу в скорости работы с буфером кадров. Кроме того, отметим, что 9 миллионов частиц — не такая уж и большая цифра, фактически, в эффектах на основе частиц все упирается в блендинг, а не геометрическую производительность современных чипов.

Texturing Rate — тест на скорость фильтрации текстур

Этот тест позволяет комплексно исследовать скорость фильтрации текстур, произвольно меняя количество накладываемых за один проход текстур, их размер, формат и метод фильтрации. Таким образом, накладывая одну текстуру, мы измеряем скорость закраски пикселей, накладывая их максимальное количество и варьируя методику фильтрации — скорость фильтрации (т.е. производительность текстурных блоков). Кроме того, мы можем оценить алгоритм определения мип-уровней:

И качество исполнения любой фильтрации:

Как видно из приведенного скриншота, тест выводит несколько больших полигонов, причем со значительным диапазоном значений глубины. Это позволяет не только визуально оценить выбор мип-уровней, но и проверить реализацию анизотропной фильтрации. Для проверки всевозможных углов наклона и поворота плоскостей "туннель" (а скорее пирамида) поворачивается вокруг оси Z, кроме того, его вершина и перемещается по кругу в плоскости, параллельной экрану. Таким образом, треугольники, из которых он состоит, равномерно поворачиваются и наклоняются под различными углами.

Для начала исследуем зависимость скорости закраски от числа текстур (билинейная фильтрация):

Если со старыми картами все достаточно ожидаемо, то с R300 в этом тесте происходят странные вещи. Полученные результаты заметно ниже его потенциального максимума. Удивительно, но даже R200 обгоняет своего старшего брата! Однако при внимательном рассмотрении вопроса этот факт находит объяснение:

  1. Не будем забывать, что 8 текстурных блоков на частоте 325 МГц вполне сравнимы по предельной производительности билинейной фильтрации с 8 блоками на 300 МГц у NV25 или с 8 блоками на 275 МГц у R200.
  2. Не будем забывать что у R300 нет комбинационных стадий. Наш тест складывает все текстуры вместе, и, видимо, в случае R300 настройки стадий эмулируются соответствующим пиксельным шейдером. На новой, по-командной архитектуре пиксельных конвейеров R300 каждая выборка текстуры займет одну команду, плюс каждое сложение — еще одну. Таким образом, R300 окажется в невыгодном положении по сравнению со старыми стадийными конвейерами, так же, как и в описанном ранее случае с фиксированным TCL!

Для проверки этого факта мы модифицировали тест (на диаграмме SPECIAL TEST), заставив накладываемые текстуры не складываться, а просто затирать друг друга. Результаты остальных карт остались прежними - занято то же число стадий, а вот R300 линейно рос до тех пор, пока не превысил свой собственный теоретический придел. Как такое могло случится? Ответ лишний раз подтверждает нашу гипотезу. Настройки стадий были транслированы драйверами (или DX9) в соответствующий пиксельный шейдер. При компиляции этого шейдера он был (как обычно) оптимизирован, и все независимые и неиспользуемые далее выборки текстур были исключены. В результате чего всегда накладывалась только одна последняя текстура, а наш тест неверно вычислял текстурный филрейт, полагая, что все текстуры выбираются честно. Итак, мы снова столкнулись с неоднозначными архитектурными особенностями нового поколения чипов. Да, более гибкого, но и менее производительного на традиционных несложных задачах. Что ж, подождем новых DDI9 драйверов и NV30, прежде чем сделать какие-то окончательные выводы. Пока же утешимся тем фактом, что в реальных приложениях все зависит не только от производительности текстурных блоков, но и от суммарного объема текстур (а у нас он был незначителен — одна текстура 256х256 вполне может целиком поместиться в кеш), а следовательно, R300 снабженный более широкой шиной памяти, получит заметное преимущество. Подтверждение этому мы найдем далее, в тестах, основанных на реальных приложениях, а теперь исследуем производительность трилинейной фильтрации, которая, согласно заявлениям ATI, для R300 выполняется бесплатно:

На поверку трилинейная фильтрация оказывается "почти бесплатной", впрочем, как и в случае других карт. Взаимная картина сохраняется прежней. Теперь исследуем зависимость от типа фильтрации:

В случае анизотропной фильтрации R300 на высоте — продукты NV предыдущего поколения традиционно проигрывали в этом вопросе. Однако, на сей раз, анизотропия не столь бесплатна для R300, как была для его предка — R200. Особенно заметно это в случае ее совместного использования с трилинейной фильтрацией. Дело в том, что ATI исправила хорошо известную проблему своей реализации анизотропии на основе RIP-маппинга. Теперь их реализация допускает произвольный поворот плоскости текстурируемой поверхности вокруг оси Z (!). За это пришлось расплатиться заметным (но все же не в разы) падением скорости относительно R200. С другой стороны, результаты NV25 и P512, исповедующих классический подход к реализации анизотропии, по-прежнему "далеко внизу". Единственное исключение — младшая степень анизотропии, где NV25 и особенно P512 (благодаря наличию четырех текстурных блоков на конвейер) еще как-то способны конкурировать с семейством RADEON. Остается только похвалить ATI — и проблемы исправили, и скорость упала не очень сильно. Но, с другой стороны, что принесет нам в этом вопросе NV30, с которой R300 должен конкурировать? Не является ли сравнимая с R200 скорость анизотропной фильтрации нового RADEON опрометчивым шагом? ATI была сильно ограничена .15 техпроцессом, и не смогла реализовать вторые текстурные блоки или увеличить частоту ядра чипа. Но при этом чип был сделан по новой архитектуре пиксельных конвейеров, которая сама по себе (на простых задачах при прочих равных) проигрывает старой - это расплата за повышенную гибкость программирования. Зажатый в тиски сложности и техпроцесса Matrox предвидел подобные проблемы и не решился реализовывать полную совместимость DX9 по технологии .15. А вот инженеры ATI — рискнули. Время покажет, был ли этот риск оправдан.

Напоследок, проверим зависимость нашего теста от размера текстуры (возьмем характерный случай с 4 текстурами за проход — такое количество способны задействовать все чипы, принимающие участие в сравнении):

как видно, зависимость незначительна, и текстура 256х256 может считаться разумным решением для большинства тестов. Теперь проверим зависимость от разрешения (и снова задействуем 4 текстуры):

Начиная с выбранного нами разрешения 1280х1024, зависимость практически не просматривается, что и требуется от хорошего теста. Проверять зависимость от формата текстуры мы пока не будем — т.к. в данных драйверах не реализованы сжатые форматы, а 16-битная текстура будет выводиться с той же самой скоростью (напомним, что пока мы тестируем только с применением одной текстуры, которая помещается в кэш чипа).



Благодарим Филиппа Герасимова, одного из авторов и главного программиста DirectX тестов пакета RightMark 3D, за оперативную помощь в тестировании




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

Обзор ATI RADEON 9700 Pro 128MB

ATI RADEON 9700 Pro 128MB

" Это он, это он, это новый Radeon!"
(почти по Маршаку)

Для начала, настоятельно рекомендуем прочитать аналитическую статью, посвященную архитектуре и спецификациям RADEON 9700 (R300)

СОДЕРЖАНИЕ

  1. Общие сведения
  2. Теоретические аспекты реализации анитиалиасинга и анизотропной фильтрации
  3. Особенности видеокарты ATI RADEON 9700 Pro 128MB
  4. Конфигурации тестовых стендов и особенности настроек драйверов
  5. Результаты тестов: коротко о 2D, предельные из DirectX 8.1 SDK и синтетические (на базе DirectX 9.0) тесты
  6. Результаты тестов: Синтетические тесты 3DMark2001 SE
  7. Результаты тестов: Игровые тесты 3DMark2001 SE
  8. Результаты тестов: Quake3 ARENA
  9. Результаты тестов: Serious Sam: The Second Encounter
  10. Результаты тестов: Return to Castle Wolfenstein
  11. Результаты тестов: Code Creatures DEMO
  12. Результаты тестов: Comanche4 DEMO
  13. Результаты тестов: Unreal Tournament 2003 DEMO
  14. Результаты тестов: AquaMark
  15. Результаты тестов: RightMark 3D
  16. Качество 3D: Анизотропная фильтрация
  17. Качество 3D: Анти-алиасинг
  18. Качество 3D в целом
  19. Выводы

Результаты тестов

2D-графика

Традиционно начнем с 2D. Несмотря на высокую частоту и сложность карты, качество 2D выше всяких похвал! Что самое интересное, можно заметить увеличенную насыщенность (сочность) цветов (специально переключал монитор с компьютера с RADEON 9700 на компьютер с RADEON 8500, чтобы сравнить). Мы остались очень довольны качеством 2D.

Казалось, еще Ленин говорил, что оценка 2D-качества есть вещь субъективная. Поэтому напомню, что качество зависит от конкретного экземпляра, а также связка карта-монитор может по-прежнему играть огромную роль, прежде всего надо обращать внимание на качество монитора и кабеля.

3D-графика, MS DirectX 8.1 SDK — предельные тесты

На этот раз мы планировали полностью перейти к тестированию предельных характеристик с помощью прототипов синтетических тестов, разрабатываемых нами в рамках проекта открытого графического теста RightMark 3D. Однако из-за отсутствия в драйверах поддержки основных возможностей DX9 мы приняли решение использовать два старых (и уже хорошо знакомых читателям) теста на основе примеров из DX 8.1 SDK и пока не рассматривать некоторые из наших новых DX9 тестов.

Итак, для тестирования различных предельных характеристик чипов мы использовали модифицированные (для большего удобства и контроля) примеры из последней официальной финальной версии DirectX SDK (8.1).

EMBM рельеф

В этом тесте мы измеряем производительность, а точнее — ее падение, возникающее при использовании наложения карт среды (Environment) и рельефа на основе карт среды (EMBM — Environment Mapped Bump Mapping). Кроме того, мы измеряем филрейт обычного одинарного текстурирования. Тестирование проводилось в разрешении 1280*1024 — мы находим это разрешение оптимальным для предельных тестирований современных карт:

Взгляните на красные столбики RADEON 9700 PRO. Бросается в глаза удручающее падение скорости закраски при использовании EMBM. Столь радикальное падение ставит RADEON 9700 PRO (aka R300), снабженный 256-битным интерфейсом памяти, на одну ступень с предыдущим поколением чипов (в EMBM режиме, разумеется)! Если в обычном текстурировании мы наблюдаем значительное преимущество над всеми конкурентами, то с включением карты среды оно уменьшается. Остальные карты практически не теряют производительности — они могут задействовать второй текстурный блок, а у R300 его нет. При активации EMBM комбинируется уже 3 текстуры. Но и это не все: в случае EMBM одна текстура выбирается на основе значений, полученных из другой, и, как мы видим, подобная схема особенно больно бьет по пиксельным конвейерам R300.

Производительность пиксельных шейдеров 1.0

Мы вновь использовали модифицированный пример MFCPixelShader, измерив производительность карт в высоком разрешении при выполнении 5 различных по сложности шейдеров, для билинейно фильтрованных текстур:

Вновь ситуация неоднозначна. На предельно простом коротком шейдере преимущество R300 очевидно, сказывается наличие 8 конвейеров. Однако по мере усложнения шейдера скорость падает, причем быстрее, чем у остальных соперников, и на сложной задаче R300 располагается практически на одной ступени с NV25(!). Ситуация очень близко напоминает ту, что мы видели в обзоре P10 и, видимо, в той или иной мере будет свойственна всем ускорителям нового поколения, способным исполнять большие пиксельные шейдеры. Впрочем, если сравнить между собой результаты R200 и R300 — прогресс налицо, и более чем двукратный.

Подобное падение производительности вызвано двумя причинами:

  • во-первых, уже отмеченный нами аспект наличия лишь одного текстурного блока, который вызывает заметное падение производительности при активации каждой следующей текстуры, а не пары текстур? как у других чипов.
  • Во-вторых, не забываем, что все остальные чипы снабжены пиксельными стадиями и выполняют шейдеры версии 1.X вдвое или вчетверо быстрее, чем по команде за такт, в то время как R300 выполняет шейдеры покомандно, пускай и 8 параллельными конвейерами. Мы уже не раз рассуждали на этот счет в аналитике по R300 и обзоре P10, и в этом обзоре вновь находим наглядное подтверждение наших аналитических выводов в результатах синтетических тестов.

Кроме того, внимательный читатель может заметить, что NV25 и P512 снабжены, как минимум, 4 стадиями на один пиксельный конвейер, а R200, судя по всему, — лишь двумя. С другой стороны, наличие четырех текстурных модулей не сильно помогает P512 — невысокая тактовая частота является сдерживающим фактором, и наиболее хорошо с точки зрения исполнения пиксельных шейдеров первой версии сбалансирован NV25.

Не следует забывать, что конкурировать R300 придется в первую очередь с NV30, о производительности которого мы пока можем делать лишь очень зыбкие суждения, основанные на ориентировочной тактовой частоте, наличии двух текстурных блоков на конвейер и покомандном исполнении шейдеров (также, как и у R300).

3D-графика, MS DirectX 9 SDK (beta 2) — синтетические тесты

Для тестирования остальных предельных характеристик чипа мы использовали прототипы наших новых синтетических DX9 тестов, созданные в рамках проекта RightMark 3D.

GPU Speed — геометрическая производительность

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

  1. Константное (ambient lighting)
  2. Рассеянное (1 точечный источник)
  3. Рассеянное (2 точечный источника)
  4. Рассеянное (3 точечных источника)
  5. Рассеянное + блики (1 точечный источник)
  6. Рассеянное + блики (2 точечных источника)
  7. Рассеянное + блики (3 точечных источника)

И четыре режима работы:

  1. Традиционный TCL (Fixed-Function Pipeline)
  2. Вершинные шейдеры 1.1
  3. Вершинные шейдеры 1.1 и пиксельные шейдеры 1.1
  4. Вершинные шейдеры 2.0 и пиксельные шейдеры 2.0

Позже, в тест будет добавлено несколько характерных задач анимации и трансформации геометрии.

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

Приведем результаты для "традиционного" TCL как в аппаратном режиме, так и в случае программной обработки вершин:

Как мы видим, вновь R300 на высоте в самой простой задаче. Обратите внимание на внушительную цифру в 106 миллионов трансформированных и вершин в секунду (!). И вновь, его позиция в остальных (более сложных) задачах неоднозначна. Скажем так, R300 становится "сравним" с NV25 и P512, что никак нельзя назвать блестящим результатом для чипа нового поколения. Также отметим, что в режиме программной трансформации по прежнему лидирует поддерживающий FastWrites NV25 — а результаты R300 в этом вопросе, к сожалению, все там же — на уровне R200 и P512.

Но, не будем забывать, что это тест старого, в некотором роде рудиментарного TCL. Предыдущие чипы, даже не имея выделенного фиксированного TCL блока, были заточены для его эффективной эмуляции. Возможно, что при разработке R300 такая задача не ставилась. Давайте теперь посмотрим, как обстоят дела с трансформацией и освещением на основе вершинных шейдеров:

Ага! Наши предположения про эмуляцию TCL оказались верны — в задаче исполнения шейдеров R300 на высоте. Как и следовало ожидать — новый чип в среднем опережает NV25 вдвое, а своего предшественника R200 — даже втрое. Результаты R300 хорошо согласуются с полученными в TCL режиме, что говорит об отсутствии какой-либо специально усиленной эмуляции оного. Итак, в этом тесте R300 выходит четким победителем, демонстрируя отрыв, достойный нового поколения.

В программном режиме, вновь лучше всех показывает себя NV25. На более или менее сложных шейдерах программная эмуляция выполняется крайне неспешно. Впрочем, пока еще очень сложно представить себе реальное приложение, способное нарисовать 30 или 40 миллионов треугольников, а посему в реальных задачах эмуляция может оставаться приемлемой.

А теперь проверим зависимость теста от разрешения:

Как мы видим, тест не зависит от разрешения, но при этом четко зависит от сложности модели освещения, что, собственно, и требовалось.

Point Sprites

Этот тест призван измерять производительность вывода точечных спрайтов. Тест всегда использует полупрозрачные спрайты, т.к. большинство реальных эффектов на основе систем частиц (для которых они и предназначены) требуют наличия полупрозрачности и смешения (блендинга). Доступны два режима: с освещением каждого спрайта источниками света и без. Можно регулировать размер выводимых спрайтов.

Как мы видим, при тестировании без освещения на небольших размерах спрайтов (до 4 точек включительно) R300 проигрывает даже R200 (!), не говоря уже о NV25. Однако с ростом размеров спрайтов он занимает лидирующее положение — сказывается наличие 256-битной шины памяти. Чем больше размер спрайтов — тем активнее идет общение с кадровым буфером во время блендинга.

И при освещении общая картина зависимости та же, но на сей раз разница не столь бросается в глаза — особенно на маленьких размерах спрайтов. Видимо, все упирается в трансформацию и освещение. По мере роста размеров R300 начинает лидировать вновь, благодаря существенному преимуществу в скорости работы с буфером кадров. Кроме того, отметим, что 9 миллионов частиц — не такая уж и большая цифра, фактически, в эффектах на основе частиц все упирается в блендинг, а не геометрическую производительность современных чипов.

Texturing Rate — тест на скорость фильтрации текстур

Этот тест позволяет комплексно исследовать скорость фильтрации текстур, произвольно меняя количество накладываемых за один проход текстур, их размер, формат и метод фильтрации. Таким образом, накладывая одну текстуру, мы измеряем скорость закраски пикселей, накладывая их максимальное количество и варьируя методику фильтрации — скорость фильтрации (т.е. производительность текстурных блоков). Кроме того, мы можем оценить алгоритм определения мип-уровней:

И качество исполнения любой фильтрации:

Как видно из приведенного скриншота, тест выводит несколько больших полигонов, причем со значительным диапазоном значений глубины. Это позволяет не только визуально оценить выбор мип-уровней, но и проверить реализацию анизотропной фильтрации. Для проверки всевозможных углов наклона и поворота плоскостей "туннель" (а скорее пирамида) поворачивается вокруг оси Z, кроме того, его вершина и перемещается по кругу в плоскости, параллельной экрану. Таким образом, треугольники, из которых он состоит, равномерно поворачиваются и наклоняются под различными углами.

Для начала исследуем зависимость скорости закраски от числа текстур (билинейная фильтрация):

Если со старыми картами все достаточно ожидаемо, то с R300 в этом тесте происходят странные вещи. Полученные результаты заметно ниже его потенциального максимума. Удивительно, но даже R200 обгоняет своего старшего брата! Однако при внимательном рассмотрении вопроса этот факт находит объяснение:

  1. Не будем забывать, что 8 текстурных блоков на частоте 325 МГц вполне сравнимы по предельной производительности билинейной фильтрации с 8 блоками на 300 МГц у NV25 или с 8 блоками на 275 МГц у R200.
  2. Не будем забывать что у R300 нет комбинационных стадий. Наш тест складывает все текстуры вместе, и, видимо, в случае R300 настройки стадий эмулируются соответствующим пиксельным шейдером. На новой, по-командной архитектуре пиксельных конвейеров R300 каждая выборка текстуры займет одну команду, плюс каждое сложение — еще одну. Таким образом, R300 окажется в невыгодном положении по сравнению со старыми стадийными конвейерами, так же, как и в описанном ранее случае с фиксированным TCL!

Для проверки этого факта мы модифицировали тест (на диаграмме SPECIAL TEST), заставив накладываемые текстуры не складываться, а просто затирать друг друга. Результаты остальных карт остались прежними - занято то же число стадий, а вот R300 линейно рос до тех пор, пока не превысил свой собственный теоретический придел. Как такое могло случится? Ответ лишний раз подтверждает нашу гипотезу. Настройки стадий были транслированы драйверами (или DX9) в соответствующий пиксельный шейдер. При компиляции этого шейдера он был (как обычно) оптимизирован, и все независимые и неиспользуемые далее выборки текстур были исключены. В результате чего всегда накладывалась только одна последняя текстура, а наш тест неверно вычислял текстурный филрейт, полагая, что все текстуры выбираются честно. Итак, мы снова столкнулись с неоднозначными архитектурными особенностями нового поколения чипов. Да, более гибкого, но и менее производительного на традиционных несложных задачах. Что ж, подождем новых DDI9 драйверов и NV30, прежде чем сделать какие-то окончательные выводы. Пока же утешимся тем фактом, что в реальных приложениях все зависит не только от производительности текстурных блоков, но и от суммарного объема текстур (а у нас он был незначителен — одна текстура 256х256 вполне может целиком поместиться в кеш), а следовательно, R300 снабженный более широкой шиной памяти, получит заметное преимущество. Подтверждение этому мы найдем далее, в тестах, основанных на реальных приложениях, а теперь исследуем производительность трилинейной фильтрации, которая, согласно заявлениям ATI, для R300 выполняется бесплатно:

На поверку трилинейная фильтрация оказывается "почти бесплатной", впрочем, как и в случае других карт. Взаимная картина сохраняется прежней. Теперь исследуем зависимость от типа фильтрации:

В случае анизотропной фильтрации R300 на высоте — продукты NV предыдущего поколения традиционно проигрывали в этом вопросе. Однако, на сей раз, анизотропия не столь бесплатна для R300, как была для его предка — R200. Особенно заметно это в случае ее совместного использования с трилинейной фильтрацией. Дело в том, что ATI исправила хорошо известную проблему своей реализации анизотропии на основе RIP-маппинга. Теперь их реализация допускает произвольный поворот плоскости текстурируемой поверхности вокруг оси Z (!). За это пришлось расплатиться заметным (но все же не в разы) падением скорости относительно R200. С другой стороны, результаты NV25 и P512, исповедующих классический подход к реализации анизотропии, по-прежнему "далеко внизу". Единственное исключение — младшая степень анизотропии, где NV25 и особенно P512 (благодаря наличию четырех текстурных блоков на конвейер) еще как-то способны конкурировать с семейством RADEON. Остается только похвалить ATI — и проблемы исправили, и скорость упала не очень сильно. Но, с другой стороны, что принесет нам в этом вопросе NV30, с которой R300 должен конкурировать? Не является ли сравнимая с R200 скорость анизотропной фильтрации нового RADEON опрометчивым шагом? ATI была сильно ограничена .15 техпроцессом, и не смогла реализовать вторые текстурные блоки или увеличить частоту ядра чипа. Но при этом чип был сделан по новой архитектуре пиксельных конвейеров, которая сама по себе (на простых задачах при прочих равных) проигрывает старой - это расплата за повышенную гибкость программирования. Зажатый в тиски сложности и техпроцесса Matrox предвидел подобные проблемы и не решился реализовывать полную совместимость DX9 по технологии .15. А вот инженеры ATI — рискнули. Время покажет, был ли этот риск оправдан.

Напоследок, проверим зависимость нашего теста от размера текстуры (возьмем характерный случай с 4 текстурами за проход — такое количество способны задействовать все чипы, принимающие участие в сравнении):

как видно, зависимость незначительна, и текстура 256х256 может считаться разумным решением для большинства тестов. Теперь проверим зависимость от разрешения (и снова задействуем 4 текстуры):

Начиная с выбранного нами разрешения 1280х1024, зависимость практически не просматривается, что и требуется от хорошего теста. Проверять зависимость от формата текстуры мы пока не будем — т.к. в данных драйверах не реализованы сжатые форматы, а 16-битная текстура будет выводиться с той же самой скоростью (напомним, что пока мы тестируем только с применением одной текстуры, которая помещается в кэш чипа).



Благодарим Филиппа Герасимова, одного из авторов и главного программиста DirectX тестов пакета RightMark 3D, за оперативную помощь в тестировании