"Если долго мучиться, что-нибудь получится"
(А.Пугачева)
Как обычно, предваряя большой базовый материал анализа работы нового акселератора, мы настоятельно
рекомендуем прочитать аналитическую статью, посвященную архитектуре и
спецификациям NVIDIA GeForce FX (NV30)
В данном тесте участвуют только R300 и NV30 — т.к. аппаратное исполнение версии 2.0 пиксельных шейдеров
является минимальным требованием для этого теста. Судите сами: на старой доброй GeForce4 Ti 4600
вкупе с 2 ГГц Pentium 4 программная эмуляция второй версии пиксельных шейдеров выдает порядка одного
кадра в две секунды. И это — в маленьком окне.
Сам тест, шейдеры 2.0:
Вот это сюрприз! Если в вопросе сложной, массированной выборки текстур, NV30 была на высоте, демонстрируя
порою, чуть ли не двукратное преимущество надо R300, то в вопросе пиксельных вычислений в рамках
шейдеров 2.0 она вдвое проигрывает R300! Это прямое следствие того факта, что операции с плавающей точкой
выполняются NV30 вдвое медленнее операций с целыми числами. А судя по результатам теста, и вдвое
медленнее R300. Что ж, опять таки мы наблюдаем расплату за гибкость. Пиксельный конвейер NV30 гораздо
более гибок, он не ограничен требованиями PS 2.0, и допускает использование большого числа команд и
констант, в том числе команд с логическими предикатами. Все это очень хорошо, но стоило ли платить такую
цену с точки зрения производительности за эти возможности? Ответ: стоило только в том случае, если
разработчики будут широко использовать эти дополнительные возможности специфичные для архитектуры NV30.
Но будут ли они это делать? Опыт показывает, что разработчики ограничатся наибольшим общим кратным между
ATI и NVIDIA, т.е., в данной ситуации, базовой версией PS 2.0, возможно с дополнительными модификаторами из
PS 2.X которые поддерживают и R300 и NV30. Но, дополнительные команды и константы, скорее всего,
задействованы не будут.
Одна из глубинных причин такого проигрыша NV30 — хранение констант в виде дополнительных команд в
коде шейдера. Видимо, эти отводимые под константы команды требуют не только места, но и тактов на
исполнение.
Давайте посмотрим, изменятся ли результаты при форсировании плавающих вычислений с 16 битной (половинной)
точностью, возможном в пиксельных шейдерах 2.X:
Как видно, никакой разницы — если форсирование половинной точности и происходит реально (в чем
есть сомнения), оно не влияет на скорость вычислений.
Итак, несомненно, пиксельные шейдеры еще будут совершенствоваться с точки зрения их оптимизации
при компиляции в драйверах, но маловероятно, что столь заметное вычислительное преимущество R300 будет
преодолено. Ждем R400 и NV40 которые обещают быть не только гибкими, но и чертовски быстрыми в
вопросах вычислений пиксельных и вершинных шейдеров.
На последок проверим зависимость от разрешения для обоих чипов:
Зависимости совпадают — все зависит только от числа закрашенных пикселей, никаких аномалий не наблюдается.
Point Sprites
Итак, спрайты.
С освещением и без, в зависимости от размеров:
Как и ожидалось наличие или отсутствие освещения сказывается только на маленьких спрайтах, по мере
роста размера все упирается в закраску. Происходит это при размере 8 и более. Итак, для вывода систем,
состоящих из большого числа частиц, следует признать оптимальными размеры менее 8. До размера 8
включительно NVIDIA показывает себя гораздо лучше ATI — падение не столь заметно, монотонно и не
велико. ATI же теряет бодрость духа уже между 4 и 8 и делает это весьма резко. Зато на больших
размерах спрайтов проигрывает NV30 — здесь сказывается недостаток ПСП.
Пиковые значения достигаются, разумеется, без освещения, и составляют соответственно чуть
более 21 миллионов спрайтов в секунду для RADEON 9700 PRO и чуть более 24 для GeForce FX 5800 Ultra.
Опять-таки отметим уже ранее озвученный вывод, что никакой особой панацеи точечные спрайты нам
не приносят — цифры не сильно далеки от тех, что можно получить при помощи обычных полигонов. Впрочем,
зачастую само использование точечных спрайтов с точки зрения программирования более удобно, и в
первую очередь для всевозможных систем частиц.
Посмотрим, какую роль сыграет наличие или отсутствие анимации а также версия шейдеров:
Итак, вклад анимации не столь велик, но заметен, причем вне зависимости от версии вершинных шейдеров.
На этом мы заканчиваем материал, посвященный первому широкому тестированию карт с использованием
синтетических тестов для API DX9 из набора RightMark 3D.
"Если долго мучиться, что-нибудь получится"
(А.Пугачева)
Как обычно, предваряя большой базовый материал анализа работы нового акселератора, мы настоятельно
рекомендуем прочитать аналитическую статью, посвященную архитектуре и
спецификациям NVIDIA GeForce FX (NV30)
В данном тесте участвуют только R300 и NV30 — т.к. аппаратное исполнение версии 2.0 пиксельных шейдеров
является минимальным требованием для этого теста. Судите сами: на старой доброй GeForce4 Ti 4600
вкупе с 2 ГГц Pentium 4 программная эмуляция второй версии пиксельных шейдеров выдает порядка одного
кадра в две секунды. И это — в маленьком окне.
Сам тест, шейдеры 2.0:
Вот это сюрприз! Если в вопросе сложной, массированной выборки текстур, NV30 была на высоте, демонстрируя
порою, чуть ли не двукратное преимущество надо R300, то в вопросе пиксельных вычислений в рамках
шейдеров 2.0 она вдвое проигрывает R300! Это прямое следствие того факта, что операции с плавающей точкой
выполняются NV30 вдвое медленнее операций с целыми числами. А судя по результатам теста, и вдвое
медленнее R300. Что ж, опять таки мы наблюдаем расплату за гибкость. Пиксельный конвейер NV30 гораздо
более гибок, он не ограничен требованиями PS 2.0, и допускает использование большого числа команд и
констант, в том числе команд с логическими предикатами. Все это очень хорошо, но стоило ли платить такую
цену с точки зрения производительности за эти возможности? Ответ: стоило только в том случае, если
разработчики будут широко использовать эти дополнительные возможности специфичные для архитектуры NV30.
Но будут ли они это делать? Опыт показывает, что разработчики ограничатся наибольшим общим кратным между
ATI и NVIDIA, т.е., в данной ситуации, базовой версией PS 2.0, возможно с дополнительными модификаторами из
PS 2.X которые поддерживают и R300 и NV30. Но, дополнительные команды и константы, скорее всего,
задействованы не будут.
Одна из глубинных причин такого проигрыша NV30 — хранение констант в виде дополнительных команд в
коде шейдера. Видимо, эти отводимые под константы команды требуют не только места, но и тактов на
исполнение.
Давайте посмотрим, изменятся ли результаты при форсировании плавающих вычислений с 16 битной (половинной)
точностью, возможном в пиксельных шейдерах 2.X:
Как видно, никакой разницы — если форсирование половинной точности и происходит реально (в чем
есть сомнения), оно не влияет на скорость вычислений.
Итак, несомненно, пиксельные шейдеры еще будут совершенствоваться с точки зрения их оптимизации
при компиляции в драйверах, но маловероятно, что столь заметное вычислительное преимущество R300 будет
преодолено. Ждем R400 и NV40 которые обещают быть не только гибкими, но и чертовски быстрыми в
вопросах вычислений пиксельных и вершинных шейдеров.
На последок проверим зависимость от разрешения для обоих чипов:
Зависимости совпадают — все зависит только от числа закрашенных пикселей, никаких аномалий не наблюдается.
Point Sprites
Итак, спрайты.
С освещением и без, в зависимости от размеров:
Как и ожидалось наличие или отсутствие освещения сказывается только на маленьких спрайтах, по мере
роста размера все упирается в закраску. Происходит это при размере 8 и более. Итак, для вывода систем,
состоящих из большого числа частиц, следует признать оптимальными размеры менее 8. До размера 8
включительно NVIDIA показывает себя гораздо лучше ATI — падение не столь заметно, монотонно и не
велико. ATI же теряет бодрость духа уже между 4 и 8 и делает это весьма резко. Зато на больших
размерах спрайтов проигрывает NV30 — здесь сказывается недостаток ПСП.
Пиковые значения достигаются, разумеется, без освещения, и составляют соответственно чуть
более 21 миллионов спрайтов в секунду для RADEON 9700 PRO и чуть более 24 для GeForce FX 5800 Ultra.
Опять-таки отметим уже ранее озвученный вывод, что никакой особой панацеи точечные спрайты нам
не приносят — цифры не сильно далеки от тех, что можно получить при помощи обычных полигонов. Впрочем,
зачастую само использование точечных спрайтов с точки зрения программирования более удобно, и в
первую очередь для всевозможных систем частиц.
Посмотрим, какую роль сыграет наличие или отсутствие анимации а также версия шейдеров:
Итак, вклад анимации не столь велик, но заметен, причем вне зависимости от версии вершинных шейдеров.
На этом мы заканчиваем материал, посвященный первому широкому тестированию карт с использованием
синтетических тестов для API DX9 из набора RightMark 3D.