Синтетические тесты D3D RightMark (DirectX 9)

Введение

Данная версия является предварительной. Вы можете использовать данную программу на свой риск. Создатели программы не несут ответственности за любые повреждения и потерю данных, произошедшие во время работы программы.
 
Набор синтетических тестов тестового пакета D3D RightMark включает в себя (на данный момент) следующие тесты:
  1. Тест на закраску и фильтрацию текстур (Pixel Filling Test);
  2. Тест на производительность обработки геометрии (Geometry Processing Speed Test);
  3. Тест на производительность работы с отсечением невидимых точек и примитивов (Hidden Surface Removal Test);
  4. Тест на производительность сложных пиксельных шейдеров (Pixel Shader Test);
  5. Тест на производительность отрисовки, освещения и анимации спрайтов (Point Sprites Test).

Системные Требования

  1. PC с Intel-совместимым процессором 500 Mhz и выше.
  2. 128 Mb оперативной памяти.
  3. DirectX9-совместимый ускоритель.
  4. Microsoft Windows 98/ME или Microsoft Windows XP и выше.
  5. DirectX 9.0 и выше.

Примечание 1: полная функциональность тестов возможна только на компьютере с графическим ускорителем, полностью поддерживающим DirectX 9.0

Примечание 2: для просмотра результатов выполнения тестов в формате XLS нужен пакет Microsoft Office XP.

Идеология синтетических тестов

Основная идея, стоящая за всеми нашими тестами — острая фокусировка на производительности той или иной конкретной подсистемы чипа. В отличие от реальных приложений, измеряющих эффективность работы ускорителя в том или ином практическом применении что называется «в комплексе», синтетические тесты пытаются вычленить отдельные аспекты производительности. Зачем, спросите вы? Дело в том, что между выходом новых ускорителей и приложений, эффективно и всесторонне использующих их возможности, зачастую проходит год или даже более. При этом, многие энтузиасты, желающие находиться на переднем краю технологий, вынуждены принимать решение о покупке того или иного ускорителя практически вслепую — основываясь на результатах тестирования заведомо устаревшего программного обеспечения. Никто не может гарантировать им, что в будущем, в момент выхода столь ожидаемых ими игр, ситуация не поменяется кардинально. Кроме энтузиастов, которые добровольно идут на риск весьма дорогой лотереи по покупке только что появившихся продуктов, в непростую ситуацию попадает еще несколько категорий людей:

Итак, синтетические тесты позволяют исследовать производительность и возможности отдельных подсистем ускорителей, тем самым позволяя заранее строить прогнозы о поведении ускорителя в тех или иных приложениях. Причем, как в уже существующих (обобщенная оценка пригодности и перспективности для целого класса применений) так и в еще разрабатываемых, разумеется, при условии наличия определенных характерных особенностей использования ускорителя под управлением этих приложений.

Описания синтетических тестов набора D3D RightMark

Pixel Filling

Данный тест выполняет целый ряд задач. В том числе:

  1. Измерение производительности закраски буфера кадров
  2. Измерение производительности различных режимов фильтрации текстур
  3. Измерение эффективности работы (кэширования) с текстурами различного объема
  4. Измерение эффективности работы (кэширования и компрессии) с текстурами различных форматов
  5. Измерение эффективности мультитекстурирования
  6. Наглядное сравнение качества реализации тех или иных режимов фильтрации текстур

Во время тестирования выводится пирамида, основание которой лежит точно в плоскости экрана, а вершина максимально удалена от наблюдателя. Четыре стороны пирамиды состоят каждая из двух треугольников. Малое число треугольников позволяет устранить зависимость от геометрической производительности, не имеющей никакого отношения к исследуемым данным тестом вопросам. На каждую точку во время закраски накладывается от 1 до 8 текстур. При желании можно полностью отключить текстурирование (0 текстур) и измерять только скорость закраски с использованием константного значения цвета.

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

Полезна возможность выбора режима работы теста — одни и те же действия могут быть выполнены шейдерами разных версий и фиксированными конвейерами, доставшимися в наследство от предыдущих поколений DX. Т.е. можно исследовать разницу в производительности в зависимости от используемой версии шейдеров.

Специальная текстура с различными цветами и цифрами облегчает исследование качественных аспектов фильтрации, а также ее взаимодействия с полноэкранным сглаживанием. При желании, также можно выделить различным цветом mip-уровни. И сделать выводы об алгоритме их смешения и выбора.

Результат работы теста выдается в двух единицах — число кадров в секунду (FPS) и, что более удобно, число закрашенных в секунду пикселей (FillRate). Последнее число играет двойную роль. В режиме без текстур мы измеряем непосредственно скорость записи в буфер кадра. Таким образом, этот параметр означает число закрашенных в секунду точек экрана (Pixel FillRate). В режиме с использованием какого-либо числа текстур — число выбранных и отфильтрованных значений текстур в секунду (Texturing Rate, Texture Fill Rate).

Geometry Processing Speed

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

  1. Ambient Lighting — простейшее константное освещение
  2. 1 Diffuse Light — один диффузный источник света
  3. 2 Diffuse Lights — два диффузных источника света
  4. 3 Diffuse Lights — три диффузных источника света
  5. 1 Diffuse + Specular Light — один диффузно-спекулярный источник
  6. 2 Diffuse + Specular Lights — два диффузно-спекулярных источника
  7. 3 Diffuse + Specular Lights — три диффузно-спекулярных источника

В ходе теста выводится несколько экземпляров одной и той же модели с большим числом полигонов. Каждый экземпляр модели имеет свои параметры геометрической трансформации и относительного расположения источников света. Размер модели выбран крайне малым (большинство полигонов сравнимы или меньше экранного пикселя). И таким образом разрешение и закраска не оказывает влияния на результаты теста.

Источники света всячески перемещаются во время теста, дабы обеспечить равномерное разнообразие исходных расчетных параметров.

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

Результат работы теста выдается в двух единицах — число кадров в секунду (FPS) и, что более удобно число трансформированных и освещенных за секунду треугольников (PPS — Polygons Per Second).

Hidden Surface Removal

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

  1. Сортированные по удалению, от ближних к дальним (sorted, front to back order)
  2. Сортированные по удалению, от дальних к ближним (sorted, back to front order)
  3. Хаотически, без сортировки (unsorted)

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

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

Для того, чтобы максимально сгладить потенциальные особенности различных, как правило, основанных на разбиении буфера кадра на зоны, алгоритмов раннего HSR, сцена во время теста поворачивается вокруг оси Z. В итоге, треугольники и их границы принимают всевозможные положения.

Для проверки наличия и эффективности ранней проверки Z - так называемые Early Z reject (ATI) и Early Z cull (NVIDIA) технологии позволяющие не производить фактическое текстурирование и выполнение шейдера над пикселями не прошедшими Z тест, добавлена опция форсирующая текстурирование всех треугольников сцены. Для проверки зависимости этого теста от прочих подсистем чипа и драйверов была добавлена возможность регулировать число выводимых треугольников. Разумеется, мы можем ожидать приближения результатов к идеальным по мере роста числа треугольников, но, с другой стороны, рост оправдан только до какого-то разумного предела, после чего степень влияния на тест сторонних подсистем снова может увеличиться. Поэтому и был введен этот параметр, необходимый для проверки добротности теста в плане зависимости от числа треугольников.

Pixel Shading

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

  1. Расчет попиксельного освещения — 1 точечный источник (per-pixel diffuse lighting with per-pixel attenuation)
  2. Расчет попиксельного освещения — 2 точечных источника (per-pixel diffuse lighting with per-pixel attenuation)
  3. Расчет попиксельного освещения — 3 точечных источника (per-pixel diffuse lighting with per-pixel attenuation)
  4. Расчет попиксельного освещения — 1 точечный источник с бликом (per-pixel diffuse lighting + specular lighting with per-pixel attenuation)
  5. Расчет попиксельного освещения — 2 точечных источника с бликом (per-pixel diffuse lighting + specular lighting with per-pixel attenuation)
  6. Расчет попиксельного освещения — 3 точечных источника с бликом (per-pixel diffuse lighting + specular lighting with per-pixel attenuation)
  7. Анимированная процедурная текстура мрамора (marble animated procedure texturing)
  8. Анимированная процедурная текстура огня (fire animated procedure texturing)

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

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

Для проверки эффективности использования плавающего формата с половинной точностью представления FP16 введена опция, позволяющая выбирать одну из трех разновидностей пиксельных шейдеров - базовые 2.0, в которых нельзя указать точный формат операции, и две разновидности 2.X - с форсированием 16-битной точности вычислений и форсирование 32-битной точности вычислений соответственно.

Point Sprites

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

Контактная информация

Вы можете присылать любые пожелания и предложения, а также сообщения об ошибках по следующим адресам:

Александр Медведев unclesam@ixbt.com
Филипп Герасимов philger@mail.wplus.net

Copyrights

D3D RightMark, Copyright (C) 2002-2003 iXBT.com/Digit-Life

Все остальные торговые марки и знаки, упомянутые в данной документации, принадлежат их зарегистрированным владельцам.