Futuremark 3DMark 11

обзор и анализ нового тестового пакета

Содержание

Введение

Среди производителей тестовых пакетов для измерения производительности различных подсистем, компания Futuremark является, пожалуй, наиболее известной. Самая первая версия пакета 3DMark была выпущена ими ещё в 1998 году, когда компания называлась MadOnion. С тех пор именно этот бенчмарк стал фактическим стандартом для измерения производительности видеокарт, а со временем компания выпустила большое количество тестовых пакетов для исследования различных подсистем ПК.

Естественно, что путь 3DMark не был идеально гладким, ведь на основе его результатов сравнивалась производительность конкурирующих продуктов от Nvidia и ATI(AMD). В разное время возникали скандалы, связанные со специфическими оптимизациями в драйверах, да и критика от пользователей и производителей видеочипов (в том числе и не публичная) всегда была. Самыми спорными и неприятными моментами были оптимизации кода драйверов для получения высокой производительности именно в 3DMark, а также поддержка PhysX в 3DMark Vantage, которая дала спорное преимущество видеокартам Nvidia после покупки теми компании Ageia и портирования PhysX на CUDA.

Это лишь пара таких примеров, за всё время подобных случаев было больше. Всё это хоть и сказывалось на репутации теста, но лишь временно, да и всё равно толковых конкурентов у Futuremark так и не появилось, поэтому 3DMark лишь набирал популярность и распространенность. Компания постоянно обновляет свой набор 3D тестов, чтобы он соответствовал требованиям времени. И вот, в конце прошлого года появилась новая версия пакета, предназначенная для измерения производительности GPU в DirectX 11. Именно по этой причине она и получила название 3DMark 11.

3DMark 11 — это уже восьмой бенчмарк серии. Последняя версия всемирно известного пакета 3D тестов включает шесть тестов: четыре графических, один физический и комбинированный. Тестовые сцены в 3DMark 11 написаны специально для нового бенчмарка, в них используются техники тесселяции, объёмного освещения, продвинутой постобработки. Тест физики имитирует поведение множества твёрдых объектов и выполняется на CPU, а комбинированный включает вычислительную нагрузку и на CPU и на GPU. В качестве физического движка пакет 3DMark 11 использует движок Bullet.

Почему 3DMark столь популярен? Сравнительная простота тестирования и хорошая повторяемость результатов — одни из базовых требований к 3D-бенчмарку, которым удовлетворяет этот пакет. Обычному пользователю проще запустить 3DMark, чем протестировать несколько игр и получить усреднённую оценку. А по сравнению с анализом результатов одной игры, 3D-бенчмарк должен давать возможность примерно оценить производительность в нескольких распространённых играх.

Также, от хорошего 3D теста нужно максимальное соответствие нагрузкам и технологиям игр ближайшего будущего. Ведь многие уже вышедшие игры слишком просты для современных GPU, особенно с учётом расцвета мультиплатформенных проектов. И пользователю сходу неясно, какая игра отражает среднюю производительность, а какая — нет. 3DMark же обычно разрабатывается с учётом мнений сотрудников таких компаний, как Nvidia, AMD, Intel, Microsoft и многих других. И если Futuremark прислушивается ко всем понемногу, то и бенчмарк у них должен получиться без несправедливых уклонов в чью-либо сторону. По крайней мере — в теории, а о том, что получается на практике, мы поговорим ниже.

Тестовый набор общепринятого 3D-бенчмарка должен широко использоваться множеством пользователей и производителей, чтобы поддерживать базу результатов в актуальном виде. У 3DMark 11 с этим проблем точно нет, уже сейчас база содержит миллионы результатов с разных систем. Эта особенность делает рассматриваемый тестовый пакет одним из лучших методов быстрого и простого сравнения производительности относительно других систем, в том числе при разгоне — именно поэтому его часто используют оверклокеры.

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

Версии и настройки пакета

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

  • DirectX 11-совместимая видеокарта
  • Операционная система Windows Vista или Windows 7
  • Двухъядерный процессор с тактовой частотой от 1,8 ГГц
  • 1 гигабайт системной памяти
  • От 1,5 гигабайт свободного места на накопителе
  • Любая звуковая карта

Все требования логичны и понятны. Так как пакет предназначен исключительно для DirectX 11, то потребуется соответствующая видеокарта и операционная система. Ну а требования к CPU и RAM вполне демократичны по нынешним меркам, ведь даже «нетбучные» Zacate и Atom до них почти дотягивают (впрочем, тестировать такие решения в 3DMark 11 вряд ли кто будет).

Вместе с выходом 3DMark 11, был запущен новый онлайновый сервис на сайте www.3dmark.com, который предлагает улучшенную функциональность, по сравнению с предыдущей версией. Сервис позволяет хранить, сравнивать и делиться результатами теста с другими пользователями. Кроме того, интерфейс самого 3DMark 11 переведён на несколько языков: английский, немецкий, китайский и финский.

Версии 3DMark 11

Основной претензией к базовой (Basic) версии предыдущего пакета 3DMark Vantage было то, что она слишком простая и даёт мало возможностей. В соответствующей версии 3DMark 11 компания Futuremark решила дать «халявщикам» чуть большее и позволила заливать на сайт один результат, совершать бесконечное количество запусков теста и даже дала доступ к режиму деморолика, пусть и в единственно возможном разрешении 1280×720.

В остальном, базовая версия весьма проста и сильно ограничена. Так, в бесплатном режиме доступно лишь одно разрешение экрана, и один набор настроек (preset, о них см. далее) — только Performance. На анимированном скриншоте вы можете увидеть настройки всех версий, отдельно выделены страницы Advanced и Professional. В бесплатной версии Basic все эти настройки недоступны. Более того — бесплатная версия не позволяет увидеть результат без посещения сайта Futuremark, и это нам кажется довольно неудобным ограничением.

Версия Advanced предлагается за $19,95 и, как видно на скриншоте, она открывает множество тонких настроек тестового пакета. Конечно, при их изменении будет невозможно получить в зачёт очки 3DMark Score, но это может быть полезно для специфичных исследований. В отличие от бесплатной версии Basic, продвинутая Advanced позволяет заливать на сайт Futuremark неограниченное количество результатов, а также получать результаты без подключения к сайту и запускать демо-ролик в любом разрешении. Кроме того, эта версия не показывает пользователю рекламные баннеры и позволяет прогонять зацикленный тест в процессе тестирования стабильности системы.

Самая дорогая версия Professional отличается высокой ценой в $995, которая оправдывается тем, что такая лицензия даёт право на использование пакета в коммерческих целях. В плане функциональности отличия тоже есть, «профессионалам» открываются такие специальные возможности как тест качества изображения (рендеринг выбранных кадров), зацикленный демо-ролик (полезно для различных демонстраций), а также, что очень важно для тестеров — возможность автоматизации при помощи командной строки и экспорт результатов в XML формате.

Поначалу Futuremark решила сделать страницу результатов в самом 3DMark 11 слишком примитивной (вы можете увидеть это на скриншоте выше). В версии 1.0 даже в профессиональной версии пользователю давали увидеть лишь итоговый счёт, без отдельного счёта GPU и CPU, не говоря уже об отдельных тестах.

То есть, чтобы посмотреть детальные результаты, приходилось или заходить на сайт 3DMark.com или (в версии Professional) сохранять результаты в XML, чтобы потом посмотреть их в каком-либо редакторе. К счастью, это явное упущение было довольно быстро исправлено компанией Futuremark в первом же патче — в профессиональной версии эти данные появились прямо в окне программы.

В бесплатной версии 3DMark 11, компания Futuremark снова решила разместить логотипы рекламодателей. В этот раз ими стали компании Antec и MSI, чьи логотипы разместили в специальных местах тестовых сцен (батискафы и джип). В «профессиональном» издании они заменяются логотипами самой Futuremark. Таким образом, получается, что бесплатное Basic издание было оплачено рекламодателями.

В профессиональном издании 3DMark 11 Professional Edition есть возможность запуска деморолика в цикле («Demo looping»), использования инструмента для оценки качества изображения («Image quality tool»), автоматизация тестирования из командной строки (специальная утилита), весьма удобная для тестеров, сравнивающих десятки видеокарт.

В платных версиях также есть и возможность задания пользовательских настроек. Тест можно запустить с любыми настройками вроде изменяемых разрешения экрана, количества выборок полноэкранного сглаживания, выбора уровня тесселяции, качества теней, текстур и многих других параметров. Естественно, что общий счёт 3DMark Score при этом не подсчитывается.

Параметр MSAA Sample Count определяет количество выборок для мультисэмплинга, значение «1» отключает сглаживание. Настройка Texture Filtering Mode задаёт метод фильтрации текстурных данных: трилинейный или анизотропный. При этом значение Max Anisotropy задаёт максимально возможное качество анизотропной фильтрации.

Tessellation Detail регулирует коэффициент разбиения примитивов для тех объектов в тестовых сценах, к которым применяется тесселяция. Более высокие значения означают большую детализацию и, соответственно, большую работу для геометрического движка и растеризаторов GPU. Max Tessellation Factor задаёт максимально возможный коэффициент разбиения, особенно важный для объектов вблизи камеры.

Значение Shadow Map Size задаёт разрешение карт теней, а Shadow Cascade Count — количество каскадов теней для направленных источников света. Surface Shadow Sample Count устанавливает количество выборок из карт теней. Для всех параметров более высокие значения значат лучшее качество, но и возросшую нагрузку на GPU.

Volumetric Illumination Quality — параметр, изменяющий качество объёмного освещения. Он изменяет шаг выборок в алгоритме «ray marching» при расчёте объёмного освещения. Очень важный параметр, большие значения сильно просаживают производительность. Ambient Occlusion Quality — регулирует количество выборок на пиксель при расчёте непрямого освещения в алгоритме ambient occlusion.

Depth of Field Quality — настраивает качество одного из видов постобработки — имитации эффекта глубины резкости оптических устройств. Регулирует размер текстуры боке (bokeh), используемой при постобработке для объектов сцены, находящихся вне фокуса камеры. Настройка Color Saturation изменяет цветовую насыщенность итогового изображения, что не влияет на производительность. Из других полезных настроек отметим включение каркасного (wireframe) режима, который позволяет визуально оценить сложность геометрии в сцене.

Компанией Futuremark почти сразу же было выпущено обновление 3DMark 11, получившее версию 1.01. Наиболее важными изменениями стали: исправление ошибок и обновление SystemInfo и других компонентов, которые на ряде систем не позволяли запустить тестирование, появилось автоматическое уведомление о доступном обновлении, для изданий Advanced и Professional появилась возможность просмотра всех результатов индивидуальных тестов прямо в окне программы, а инструмент Image Quality стал корректно работать с референсным растеризатором Microsoft.

Профили настроек и подсчёт очков

Почти в каждой новой версии 3DMark, компания Futuremark пересматривает выбранное разрешение экрана для эталонного теста. Итоговый счёт подсчитывается для трёх разных наборов настроек (пресетов), которые были сделаны для того, чтобы корректно отражать производительность систем разной мощности, от ноутбуков до мощнейших игровых ПК с мультичиповыми конфигурациями. Итоговый счёт для каждого из пресетов подсчитывается по-своему, и сравнивать результаты разных наборов настроек нельзя. В 3DMark 11 есть три профиля: Entry, Performance и Extreme.

В профиле «Entry» (E) система тестируется в разрешении 1024×600 и графические настройки выбраны так, чтобы хватало 256 мегабайт видеопамяти. Соответственно, снижены и уровни тесселяции, размеры текстур и буферов, снижено качество фильтрации теней и отключены анизотропная фильтрация с полноэкранным сглаживанием. Этот набор предназначен для тестирования систем очень низкого уровня, вроде ноутбуков и даже нетбуков или настольных систем с интегрированной графикой.

Профиль «Performance» (P) в предыдущем пакете (3DMark Vantage) использовал распространённое ранее разрешение 1280×1024. Но теперь стало намного больше мониторов с соотношением сторон 16:9, поэтому было принято решение сменить разрешение по умолчанию на 1280×720. Данный профиль является основным, так как это — единственный пресет, доступный в бесплатной версии пакета.

Он отличается средней нагрузкой на GPU, ориентацией на модели с 768-1024 МБ видеопамяти, хотя сглаживание и анизотропная фильтрация текстур по-прежнему отключены. Пресет подходит для большинства DirectX 11-совместимых видеокарт среднего уровня (хотя на момент выхода требует скорее топовых моделей и компания Futuremark предлагает использовать его в большинстве случаев.

Ну а для нас, как и многих энтузиастов, гораздо интереснее экстремальный профиль. В режиме «Extreme» (X) используется разрешение 1920×1080, и большинство настроек (но не все) выкручены на максимальное значение. В этом случае уже используется и анизотропная фильтрация и полноэкранное сглаживание с количеством выборок, равным четырём. Этот профиль предназначен для того, чтобы тест оставался актуальным ещё несколько лет после его выхода. И мы используем экстремальный режим как основной в своих тестах, так как это наша давняя политика.

Отличия настроек во всех режимах собраны в удобную табличку:

Итоговый счёт 3DMark 11 складывается из результатов всех тестов по специальным формулам. Мы не будем расписывать его подробно, а просто приведём соответствующие страницы из документации Futuremark, по которым при желании можно во всём разобраться:


Графические тесты

Как мы уже упоминали, пакет 3DMark 11 назван так не в честь наступившего года, а потому что это бенчмарк с поддержкой исключительно DirectX 11. Для тестирования в более старых версиях этого графического API предлагается использовать 3DMark 06 и 3DMark Vantage. Собственно, поддержка DirectX 11 требуется даже просто для запуска 3DMark 11.

Понятное дело, что в пакете используется и тесселяция, и вычислительные шейдеры, и оптимизация многопоточного рендеринга, ставшая доступной в DirectX 11. Из других особенностей отметим объёмное освещение, качественную постобработку, а также физические эффекты. Кстати, в отличие от 3DMark Vantage, новая версия использует не PhysX API, ставший теперь собственностью одного из производителей видеочипов. Для физических расчётов на GPU и CPU в 3DMark 11 теперь используется движок Bullet с открытым исходным кодом, использующий возможности DirectCompute.

Несмотря на то, что тестов в 3DMark 11 целых шесть штук, но в них используются лишь две базовые сцены: Deep Sea и High Temple, названия которых говорят сами за себя.



А также — ещё одна дополнительная сцена, предназначенная исключительно для теста физики на CPU и «комбинированного» теста. Рассмотрим все эти тесты чуть подробнее, снабдив их кратким описанием и скриншотами.

Graphics Test 1

Первый тест основан на сцене «Deep Sea», в нём используется очень тяжёлое освещение с большим количеством источников света, отбрасывающих тени. В тесте очень много объёмного освещения (volumetric illumination), хорошо заметного в непрозрачной воде, и совершенно нет тесселяции. Постобработка включает некоторые оптические эффекты.

Graphics Test 2

Второй тест пакета также использует сцену «Deep Sea», в нём применяется среднее по тяжести освещение с несколькими объёмными источниками света, отбрасывающими тени. В этом тесте уже включена тесселяция для различных объектов в сцене, хотя уровни разбиения примитивов не очень велики. К эффектам постобработки добавлена имитация глубины резкости.

Graphics Test 3

Третий графический тест основан на сцене «High Temple», в которой используется несколько источников света. Для одного из них рассчитываются тени, он же является ещё и объёмным. Уровень тесселяции на колоннах, статуях и растительности также средний. Постфильтрация используется и в этом случае.

Graphics Test 4

Этот тест также построен на основе сцены «High Temple», имеющей множество источников света, отбрасывающих тени, часть из которых использует объёмное освещение (например, лучи света от луны). Тесселяция тут самая тяжёлая из всех тестов 3DMark 11, и на некоторых системах скорость рендеринга упирается в отрисовку примитивов в карты теней и G-буфер. Пожалуй, это единственный тест с действительно высокой нагрузкой на геометрические блоки.

Physics Test (GT5)

Тест физики на CPU использует простейшую сцену для имитации физики большого количества твёрдых тел. За взаимодействия объектов отвечает физический движок с открытым исходным кодом Bullet. CPU код распараллелен на несколько потоков, а нагрузка на GPU в этот раз намеренно минимальная — нет постобработки и других эффектов, и тест запускается всегда в сравнительно низком фиксированном разрешении.

Combined Test (GT6)

Это комбинированный тест с одновременной нагрузкой на GPU и CPU. В нём также используется физика твёрдых тел со средним количеством объектов, выполняемая на CPU, а также имитируется поведение тканей при помощи движка Bullet, работающего через DirectCompute на GPU. Графическая нагрузка в тесте средняя, это касается всего: освещения, тесселяции и постобработки.

Демонстрационный ролик

Деморолик призван показать возможности графического движка Futuremark с поддержкой DirectX 11, его предназначение исключительно зрелищное. В демонстрацию входят обе сцены: Deep Sea и High Temple, которые показываются гораздо подробнее и дольше, чем в тестах производительности, да ещё и под аккомпанемент специально написанной для 3DMark 11 музыки.




Технологии и эффекты

Оптимизация многопоточного рендеринга

Одним из самых важных улучшений в DirectX 11, направленных на увеличение производительности рендеринга, стала возможность распараллеленного рендеринга. Все современные CPU имеют по несколько вычислительных ядер, а предыдущие версии DirectX были ограничены запуском команд в один поток. И ранее только одно ядро CPU могло отдавать команды на выполнение в GPU, что зачастую вызывало упор производительности в производительность именно одного ядра центрального процессора.

А многопоточный рендеринг в DirectX 11 даёт возможность использовать все ядра CPU для выполнения задач рендеринга. Данная особенность уже начала применяться в первых играх с поддержкой DirectX 11, таких как Civilization V. Поэтому очень хорошо, что её поддержка появилась и в 3DMark 11. Последние драйверы Nvidia и AMD также поддерживают эту возможность.

Многопоточный рендеринг в бенчмарке основан на списках команд (command lists). Движок теста использует один поток на физическое ядро в графических тестах и поток на каждое логическое ядро в физическом и комбинированном тестах. Один из потоков команд является главным и он использует прямой и отложенный контексты устройства (immediate и deferred device context), а остальные потоки исполнителей (worker threads) — только отложенный.

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

Вычислительные шейдеры DirectCompute

Возможность исполнять неграфические задачи на GPU также стала долгожданной в списке нововведений DirectX 11. Все вычислительные задачи, которые могут быть эффективно распараллелены, стало можно выполнить на GPU, и чаще всего — намного быстрее, чем на CPU. В графических приложениях в список таких задач входит постобработка, физические расчёты и алгоритмы искусственного интеллекта.

Их выполнение на видеочипах не только увеличивает производительность и позволяет увеличить сложность эффектов, но и способно освободить CPU для выполнения других важных задач. Теперь, с новыми возможностями DX11, разработчики могут придумывать множество новых сложных эффектов. Конкретно в 3DMark 11 вычислительные шейдеры используются при постобработке во всех тестах, кроме физического, а также в физических расчётах имитации тканей в комбинированном тесте.

Тесселяция

Это наиболее важное изменение в DirectX 11, да и графическом конвейере современных видеочипов с давнего времени. Тесселяция позволяет отрисовывать значительно более детализированную геометрию с небольшим увеличением требований к вычислительным ресурсам и памяти. Вместе с эффективными алгоритмами изменения уровня детализации (LOD) они дают возможность динамического изменения детализации объектов в зависимости от расстояния между поверхностью и камерой. Что, в свою очередь, крайне удобно для масштабирования нагрузки на GPU разной мощности.

В 3DMark 11 используются алгоритмы тесселяции и нагрузка на геометрические блоки, похожие на те, что уже применяются в играх, и даже выше. В сцене High Temple тесселяция используется на многочисленных растениях, а также каменных статуях и колоннах. В сцене Deep Sea тесселируются поверхности дна и кораллы, а также рукотворные объекты, вроде труб и останков затонувшего корабля. На картинке это наглядно видно:

В пакете 3DMark 11 используется два типа тесселяции: основанная на картах смещения (displacement map) и тесселяция по методу Фонга (Phong tessellation). Степень разбиения примитивов вычисляется на основе длин граней треугольников, спроецированных на экранную плоскость. То есть, алгоритм LOD адаптивный, и степень тесселяции зависит от расстояния примитива до камеры. И теоретически, треугольники должны получиться примерно одинакового размера в пикселях при любом расстоянии, если всё сделано правильно. А на определённом расстоянии от объекта до камеры, тесселяция для него выключается вовсе.

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

Освещение

Важным изменением 3DMark стало то, что движок пакета использует рендеринг с отложенным затенением (deferred shading), что позволяет отрисовать большое количество источников света в кадре с приемлемой производительностью. Сначала в многослойный G-буфер отрисовываются атрибуты геометрии. Затем вычисляется непрямое освещение по алгоритму ambient occlusion, используя информацию из буфера глубины и буфера нормалей. А затем рендерится illumination буфер на основе этих атрибутов.

Форматы у этих буферов следующие: Diffuse и Specular — DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, Normal — DXGI_FORMAT_R10G10B10A2_UNORM, Ambient Occlusion — DXGI_FORMAT_R8_UNORM, Depth — DXGI_FORMAT_R32_TYPELESS.

Освещение сцены точечными источниками света, не отбрасывающими теней, отрисовывается двумя вызовами функции отрисовки (draw call). Первый вызов для тех источников, чья зона воздействия не пересекается с плоскостью камеры и другой — для остальных источников. Освещение от направленных источников света и источников типа spot отрисовывается одним вызовом на каждый источник. При рендеринге освещения, используется два отдельных буфера формата DXGI_FORMAT_R11G11B10_FLOAT для поверхностного и объёмного освещения.

Объёмное освещение — это техника, позволяющая имитировать распространение света в атмосфере, которая содержит частицы воды, пыли и т.п. Оно уже давно появилось в играх, хотя и в значительно более простом варианте. В 3DMark 11 объёмное освещение применяется в первых четырёх тестах, и оно наиболее хорошо заметно в сцене «Deep Sea» в непрозрачной воде, освещённой фонарями батискафов, а в сцене «High Temple» — в видимых лучах солнца, просвечивающих через заросли. Результат получается весьма эффектный, но крайне ресурсоёмкий.

Фильтры постобработки

В тестах пакета 3DMark 11 используется несколько фильтров постобработки, среди которых: имитация глубины резкости и эффект bloom. Также при tone mapping (приведение HDR изображения к возможностям устройства отображения) для большей кинореалистичности добавляется эффект зернистости плёнки.

Эффект глубины резкости (depth of field)

Этот фильтр постобработки добавляет чувство объёма к отрендеренной сцене, имитируя фокусировку виртуальной камеры на определённое расстояние. Техника DOF, применяемая в 3DMark 11, совсем не такая простая, что мы видим в большом количестве игр, а значительно более сложная вычислительно. Также в этом алгоритме добавляется эффект боке (bokeh) к зонам изображения, не попавшим в фокус.

До выхода DirectX 11 эффект имитации глубины резкости в играх чаще всего был примитивным blur на дальних и ближних объектах, а возможность добавления дополнительных эффектов появилась лишь недавно. И чем дальше, тем более продвинутый эффект DOF мы видим в игровых приложениях. В качестве наиболее ярких примеров можно привести постобработку в Metro 2033 и Just Cause 2 (при помощи CUDA). А в 3DMark 11 эффект виден во всех тестах, кроме простого физического.

Эффект bloom давно известен по игровым приложениям, в его простых исполнениях он не требует много ресурсов. В случае 3DMark 11 используется быстрое преобразование Фурье (Fast Fourier Transform — FFT) при помощи вычислительного шейдера. Эффекты выполняются над уменьшенным вчетверо изображением, фильтр постобработки одновременно накладывает эффекты: blur, streak, flare и цветное гало. Дополнительно применяется ещё и постфильтр, имитирующий оптические отражения.

Технические детали движка

Для тщательного исследования 3DMark 11 мы использовали пакет Nvidia Parallel Nsight, предназначенный для 3D и CUDA разработчиков и поддерживающий D3D10 и D3D11 приложения. Публичные версии пакета, начиная с 1.51, позволяют исследовать в том числе и 3DMark 11, чем мы и не преминули воспользоваться.

Parallel Nsight состоит из клиентской и серверной части. Исследуемое приложение запускается на одной системе, а анализ проводится на другой. Пакет 3DMark 11 при этом запускался при помощи специальной утилиты командной строки, доступной в профессиональном издании. А в Visual Studio 2010, установленном на ноутбуке (к слову, имеющем видеочип не от Nvidia) отлаживалось стороннее приложение. Выглядит это примерно так (первый скриншот с ноутбука, на втором отображен рендеринг в динамике и на третьем — анализ вызовов функций отрисовки остановленного кадра):



Но самой важной функцией Parallel Nsight для нас сегодня является профилирование кадра в «Frame profiler». Для подробного анализа нужно выполнить захват кадра и выполнить профилирование, которое займёт несколько минут, в течение которых приложение выполнит многократный рендеринг кадра с разными настройками для последующего анализа 3D разработчиком. Причём, в отличие от Nvidia NVPerfHUD, модификации исходного кода исследуемой программы не требуются, поэтому анализ доступен также и сторонним наблюдателям. Итак, приступим к нашему исследованию.

В 3DMark 11 используется отложенное (deferred) затенение, что вполне отвечает последним веяниям в 3D графике, хотя и сильно отличается от рендереров из предыдущих пакетов компании. Освещение вычисляется в отложенном проходе, используется несколько типов источников освещения (Omni, Frustum, Directional), для каждого из которых рассчитывается ещё и объёмное освещение. Сначала заполняется G-buffer, затем вычисляется непрямое освещение по алгоритму ambient occlusion, прямое освещение, освещение источниками omni и frustum, затем выполняется постобработка.

Все объекты отрисовываются в трёх- или четырёхслойный G-buffer: нормали + покрытие (coverage), диффузная (diffuse) составляющая, бликовая (specular) составляющая. Для буфера нормалей применяется формат R10G10B10A2, для двух других — R8G8B8A8_SRGB. Геометрия отрисовывается в них при помощи MRT. А ещё один слой используется для рендеринга объектов, излучающих свет: фонари, солнце, луна и т.п.




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

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

Для имитации глобального освещения используется метод Horizon-Based Ambient Occlusion (HBAO), точнее его версия, разработанная компанией Futuremark. Для экономии ресурсов буфер ambient occlusion вычисляется в половинном разрешении экрана.

Следующий этап — отрисовка карт теней (shadow maps). В игровых тестах используется до пяти каскадов карт теней. После этого рассчитывается освещение источниками omni и frustum для каждого пикселя сцены и результат записывается в буфер освещения (illumination buffer). Точечные источники представлены в виде параллелепипедов, а направленные — усечёнными пирамидами (frustum).

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


При этом все источники света являются объёмными и для них дополнительно вычисляется рассеивание света. И делается это при помощи весьма тяжёлого алгоритма ray marching, в отличие от упрощённых методов, давно появившихся в игровых приложениях. Метод очень тяжёлый вычислительно и заключается в вычислении изменения интенсивности луча на нескольких промежуточных точках. Значения записываются в отдельный буфер, и затем комбинируются с основным буфером освещения.

Далее наступает время постобработки, включающей эффекты имитации глубины резкости (depth of field) и эффект свечения (bloom). В алгоритме применяется быстрое преобразование Фурье (FFT) к изображению боке (bokeh) для получения частотной характеристики. Используется 128-битный формат буфера R32G32B32A32.

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

Из того, что пока не попало в поле нашего внимания, отметим, что для тесселяции в 3DMark 11 взята очень простая схема из примера DetailTessellation11, который входит в DirectX SDK. В ней не используются поверхности высокого порядка (high-order surfaces), а лишь производится простое смещение вершин по картам высот (displacement mapping).

Подробный анализ тестов

Мы сделали подробный анализ нескольких кадров в каждом из тестов, кроме «физического» для CPU. Мы измеряли долю времени, потраченного при отрисовке кадра на отдельные операции. Общее время построения кадра можно посмотреть в профилировщике кадров Parallel Nsight в колонке GPU Time (около 175 миллисекунд)...

...а для определения времени, потраченного на вызовы отрисовки, связанные с освещением, тесселяцией и постобработкой, нужно использовать сортировку Edit State Bucket, выбрав определённый признак (сортировка по используемым пиксельным или domain/hull шейдерам и т.д.). В данном случае на скриншоте выбраны два вызова отрисовки, которые рассчитывают освещение источниками света типа omni (65 миллисекунд, то есть почти 40% общего времени кадра!):

В процессе подобного анализа для нескольких кадров в каждом из тестов, мы получили следующие цифры времени занятости нашего дополнительного тестового GPU (в виде Geforce GTX 480) различными задачами в профиле Extreme:

ТестGT1GT2GT3GT4GT6
Освещение60-65%45-50%45-50%35-40%30-35%
Тесселяция0%20-25%20-25%35-40%15%
Постобработка20-25%25-30%15-20%10-15%15%
GPU-физика0%0%0%0%10-15%

Как видите, нагрузка от тесселяции в большинстве тестов не очень большая, ведь в трёх тестах из пяти («физический» не считаем) всего 20-25% времени кадра отрисовывается с применением тесселяции, а остальное время (до 75%) — нагрузка, не использующая тесселяцию вовсе. В первом тесте так и вовсе нет тесселяции, и лишь в четвёртом на вызовы функций отрисовки с использованием тесселяции приходится примерно столько же времени, сколько и на расчёт освещения.

Причём, 20-25% — это не значит, что FPS увеличится на 25%, если отключить тесселяцию вовсе. Реальная цифра будет даже ниже, потому что на саму по себе тесселяцию тратится лишь часть этого времени (впрочем, большая часть). Это сравнимо со временем, затрачиваемым на постфильтрацию.

А больше всего времени при рендеринге во всех тестах тратится на расчёт освещения. На скриншоте выше по тексту были показаны вызовы отрисовки (draw calls), сгруппированные по пиксельному шейдеру. К расчёту освещения относятся две группы вызовов, первая содержит два вызова с расчётом источников света типа omni, а вторая — несколько вызовов с расчётом направленного освещения.

Вместе эти две группы draw calls выполняются около 98 мс (65+33) от всего кадра в 175 мс. То есть, в общем расчёт освещения пожирает 56% от времени рендеринга всего кадра — даже больше половины! И примерно такая же ситуация в трёх игровых тестах из пяти, где-то чуть больше, где-то чуть меньше.

В итоге, как мы обнаружили, первый игровой тест пакета упирается в освещение, во втором и третьем к нагрузке добавлена тесселяция, довольно лёгкая для чипов Nvidia и средней сложности для лучших GPU их конкурента. И лишь в четвёртом тесте применена более-менее сложная тесселяция, на которой разная геометрическая эффективность современных архитектур AMD и Nvidia становится заметной. И хотя тесселяция в GT4 достаточна по количеству треугольников, но она используется крайне неэффективно.

Разберёмся, насколько эффективные алгоритмы используются при построении сцены в 3DMark 11, ведь цифры FPS даже на мощных системах крайне невелики. Даже сама Futuremark объясняет низкую частоту кадров в 3DMark 11 очень любопытно. В официальном документе отмечено, что тесты специально сделаны так, чтобы сильно загрузить систему для определения её слабых мест и «бутылочных горлышек».

В этом документе прямым текстом сказано, что при использовании высоких настроек в 3DMark 11 визуальная разница в качества может не соответствовать величине падения производительности. Собственно, это и так заметно, при сравнении качества картинки при разных настройках. Но почему так получается? Попробуем разобраться с алгоритмами и методами, используемыми в пакете.

Для начала разберём тесселяцию. Как видно на следующих примерах, только для нескольких объектов на переднем плане применяются высокие степени разбиения. А на средних и дальних дистанциях геометрической детализации явно не хватает. Что приводит к выводу о том, что выбранная схема детализации (LOD) весьма странная — размер дальних треугольников слишком большой, а ближних — порой (но далеко не всегда) слишком маленький.






Например, слишком мелкие треугольники видны на последнем скриншоте. А ведь все вендоры говорят о том, что нужно использовать такие степени разбиения и алгоритмы LOD, чтобы размер треугольников был не меньше 2-3 пикселей по одной из сторон, так как пиксельные шейдеры выполняют операции над квадом (2×2 пикселя).

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



То же самое относится и к части растительности, которой явно не хватает деталей. А ведь, казалось бы, что сложного в том, чтобы разбить ветки и листья на мелкие треугольники, чтобы получились плавные линии? Это уже не говоря о том, что в самом популярном 3D бенчмарке для отрисовки задних планов до сих пор используется даже плоская имитация сложных объектов в виде billboard:

Но всё же, главный минус применённых алгоритмов тесселяции в 3DMark заключается в странном изменении уровня детализации (level of detail — LOD) для разных поверхностей сцены. Правильными методами LOD считаются те, при которых все треугольники в сцене получаются примерно одного размера в пикселях, и дальние и ближние. А в 3DMark 11 треугольники ближних объектов оттесселированы в целом неплохо, но средний план и дальние — явно недостаточно.

С учётом агрессивной постобработки, и особенно глубины резкости (depth of field — DOF) принятое Futuremark решение выглядит довольно странным, так как хорошо оттесселированный передний план часто сразу же замыливается постобработкой.

Это уж и не говоря о геометрической детализации объектов при генерации карт теней (shadowmaps). Там используется алгоритм в принципе неправильный, детализация объектов не пересчитывается с учётом изменения положения камеры и идентична той, что используется при отрисовке самой сцены. В результате получается так, что объекты, которые должны иметь примерно одинаковую детализацию, отличаются по количеству треугольников довольно сильно. Кроме того, для оптимизации можно было бы обойтись и меньшей детализацией объектов при генерации карт теней. Смотрите сами, по этим скриншотам хорошо видно, сколько лишней работы делают GPU в 3DMark 11:




Итак, на видеокартах Nvidia большая часть времени рендеринга кадра проводится в одном-единственном шейдере освещения, в т.ч. объёмного. При этом данный шейдер вообще не использует особенностей, появившихся в DX11 и в целом крайне неэффективен. Хотя некоторые нововведения в 3DMark 11 используются более-менее правильно. Например, при постобработке используются вычислительные шейдеры. И для имитации глубины резкости (depth of field — DOF) выбран весьма интересный алгоритм, но сам по себе исходный код шейдера недостаточно эффективен.

Применяемый шейдер, исполняющий быстрое преобразование Фурье (fast Fourier transform — FFT) вообще не использует возможностей, появившихся в DirectCompute! Вероятно, изначально использовался пиксельный шейдер, который теперь просто исполняется как вычислительный. Он не использует разделяемую память на GPU (поддержка которой есть и у Nvidia и у AMD), а копирует информацию туда-сюда из одного render target в другой, из-за чего очень сильно упирается в ПСП и выполняется явно дольше, чем это возможно на современных видеочипах.

По нашим данным, и Nvidia и AMD предлагали свои варианты FFT кода, который бы исполнялся на видеокартах обоих производителей в несколько раз (до 10 и более!) быстрее, но компания Futuremark осталась верна хоть и неэффективному, но всё же своему видению. Судя по всему, такого подхода Futuremark придерживается во всём — делаем сами как можем, но повлиять на наши решения не дадим никому!

Физики, исполняемой на GPU, в пакете на удивление мало. Анимация флагов в комбинированном тесте считается на GPU при помощи кода из движка Bullet. Данный физический solver вполне разумен и подходит для теста производительности, но сама эта задача довольно примитивна по нынешним меркам. В современном тесте GPU-физики можно было бы сделать сложную физику жидкостей и газов, которые уже применяются в таких играх, как Dark Void и Mafia 2, а вот имитация тканей уже далеко не новинка, аналоги были ещё в предыдущих версиях 3DMark.

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

Хотя наша статья и выходит гораздо позже анонса 3DMark 11, мы считаем важным сделать и небольшой анализ результатов 3DMark 11 для наиболее распространённых видеокарт, а также сделать дополнительные исследования процессорозависимости, зависимости результатов от тактовых частот GPU и видеопамяти и т.п. Все эти исследования были проведены с использованием нашей привычной тестовой системы, знакомой читателям по i3D-Speed.

Вполне естественным решением был бы выбор исключительно «экстремального» профиля, как обычно принято на нашем сайте, но слишком уж низкая производительность у большинства решений получается в этом случае. Поэтому мы приняли решение протестировать все три пресета, но наибольшее внимание уделить среднему пресету — Performance. Тем более, что это — единственная возможность для «бесплатных» пользователей теста. Для начала рассмотрим общий итоговый счёт 3DMark 11 для всех распространённых видеокарт (решения, вышедшие в 2011 году, на диаграммах не представлены).



На наш взгляд, получились вполне логичные и объяснимые результаты, примерно соответствующие реальной расстановке решений по скорости рендеринга в играх. Подробного анализа результатов всех моделей мы делать не будем, рассмотрим лишь общие тенденции. Единственная замеченная нами странность — в том, что карты AMD несколько лучше справились с пресетом Extreme, по сравнению с платами Nvidia. Это объясняется очень просто — тем, что в данном случае сильно возрастает нагрузка на математические блоки из-за включенного полноэкранного сглаживания.

Но почему включенное сглаживание оказывает такое влияние? По той простой причине, что движок 3DMark 11 вынужден рассчитывать освещение (в пакете применяется крайне тяжёлый для ALU алгоритм, напомним) части пикселей для четырёх сэмплов, а не одного, как получается без включения MSAA. И поэтому видеокарты компании AMD, имеющие большее количество математических блоков, справляются с такой работой несколько быстрее.

Далее, на примере профиля Performance мы рассмотрим результаты, получающиеся в подтестах 3DMark 11: Graphics, Physics и Combined.



Результаты Graphics и Combined лишь подтверждают общий итоговый счёт, так как производительность в них полностью зависит от способностей видеочипов. Из интересных общих тенденций — небольшое ухудшение результатов в Combined (по сравнению с Graphics) для видеокарт Nvidia и обратная ситуация для решений AMD, которые показывают в комбинированном тесте большее количество очков.

Объясняет данную ситуацию диаграмма с результатами физического подтеста. На ней хорошо видно, что скорость в физическом тесте зависит почти исключительно от мощности CPU, но разница между результатами видеоплат AMD и Nvidia всё же есть — первые явно быстрее в тесте программной физики, и только их предыдущий двухчиповый вариант немного отстаёт.

Разное поведение решений Nvidia и AMD объясняется специфическими оптимизациями драйверов, предназначенными для распараллеливания работы для CPU. Получается, что физический CPU тест является частично и тестом видеодрайвера. Мы предполагаем, что в этом «виновата» хитрая логика драйвера Nvidia, которая помогает распараллеливать работу для CPU лишь при определённых несинтетических условиях. И вероятно, что драйверы AMD несколько лучше подходят для этого конкретного теста, получая хоть и небольшое, но преимущество, видимое и в отдельной диаграмме Physics Test.

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




По отдельным цифрам средней частоты кадров в графических подтестах 3DMark 11 хорошо видно, что при увеличении нагрузки на геометрические блоки и тесселяторы (чем больше цифра в названии теста, тем больше геометрии в кадре используется), решения на основе графических процессоров Nvidia начинают улучшать свои показатели относительно решений компании AMD. Хороший пример — Graphics Test 4.

И наоборот, в случае большей доли нагрузки на математические блоки (Graphics Test 2), лучшую относительную (но не абсолютную) скорость показывают решения AMD. Так, только в этом тесте Radeon HD 6970 способен конкурировать с Geforce GTX 580. Весьма любопытна и разница между Cypress и Cayman (Radeon HD 5870 и Radeon HD 6970, соответственно). Если при малой степени геометрической нагрузки «старый» чип показывает очень неплохие результаты, то при увеличении степени тесселяции новое решение вырывается далеко вперёд. И даже HD 6870 эффективнее обрабатывает геометрические данные в четвёртом графическом тесте, по сравнению с HD 5870.

Ну а нам остаётся лишь проверить, как результаты в 3DMark 11 зависят от разных показателей: частоты видеопамяти, частоты блоков GPU, частоты центрального процессора, а также — количества его активных ядер. Для этого исследования снова применялась дополнительная тестовая система, имеющая в своём составе центральный процессор AMD Phenom X4 940 и видеокарту Nvidia Geforce GTX 480.

Начнём исследовать зависимость итогового счёта и счёта подтестов 3DMark 11 от характеристик CPU и GPU с количества ядер центрального процессора. Для этого мы изменяли количество активных ядер от двух до четырёх в настройках BIOS setup тестовой системы и запускали бенчмарк в пресетах Performance и Extreme.


Ну что, 3DMark 11 подтверждает правильно выбранный алгоритм подсчёта очков. Но это и немудрено, они на бенчмарках собаку съели, что называется. Показатели скорости физического теста одинаковы для Performance и Extreme, так как физический тест запускается в фиксированном разрешении и настройки теста не оказывают на результат никакого влияния.

Графический и комбинированный счёт в пресете Extreme почти не зависит от количества разблокированных ядер процессора, как и должно быть. А небольшая разница в итоговом счёте объясняется вкладом в него цифр физического подтеста.

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

Раз уж мы начали исследование масштабируемости с центрального процессора системы, то продолжим опыты с ним и дальше. В следующих тестах мы изменяли частоту CPU от 2,6 до 3,4 ГГц с шагом в 0,4 ГГц (три ступени: 2,6, 3,0 и 3,4 ГГц). Использовались пресеты Performance и Extreme.


Всё снова так, как и должно быть в добротном бенчмарке. Пресет Extreme явно должен больше полагаться на производительность GPU, так и происходит — частота CPU в этом режиме почти не важна для графического и комбинированного счёта. А итоговый показатель складывается в том числе и из скорости исполнения физического теста, поэтому влияние скорости CPU на него есть, но небольшое.

В наборе предустановок Performance влияние скорости CPU явно больше, разница снова видна во всех цифрах, кроме графического подтеста. Так что и тут всё в полном порядке. Переходим к исследованию зависимости показателей производительности 3DMark 11 от характеристик GPU. Для начала рассмотрим тактовую частоту Geforce GTX 480, изменяемую от 650/1300 МГц до 750/1500 МГц с шагом в 50/100 МГц.


В этот раз получилась обратная картина, как и должно было быть в идеале. В пресете Extreme наблюдается прямая зависимость всех показателей производительности, кроме Physics, от частоты GPU. А вот набор настроек Performance отличился тем, что на нашей второй тестовой системе в возможности CPU упёрся не только физический, но и комбинированный тест.

Графический и итоговый показатели ведут себя точно так же, как и в случае Extreme, показывая явную зависимость от скорости GPU, хотя и несколько меньшую, что объясняется отличиями в настройках комбинированного теста, а также отличающемся подсчёте очков с разными коэффициентами для разных подтестов.

Нам осталось только проверить зависимость результатов 3DMark 11 от изменения частоты видеопамяти на тестовой плате Geforce GTX 480. Мы изменяли частоту локальной GDDR5 памяти от 800(3200) МГц до 1000(4000) МГц с шагом в 100(400) МГц.


Похоже, что по крайней мере на тестовой системе с Geforce GTX 480 показатели 3DMark 11 почти не зависят от тактовой частоты видеопамяти. Разница хоть и есть, но она очень маленькая, и в основном вполне вписывается в возможные пределы погрешности тестирования. Поэтому мы делаем вывод о том, что на мощных видеокартах с достаточно высокой пропускной способностью памяти, её частота слабо влияет на производительность, в отличие от частоты математических блоков GPU.

Исследование результатов 3DMark 11 на большом наборе систем показало, что его в целом можно применять для тестирования производительности видеокарт — все необходимые условия для этого есть, графические тесты зависят в основном от мощности GPU, а процессорный — исключительно от скорости центрального процессора системы. Однако, при исследовании рендеринга тестовых сцен, загрузки блоков GPU и сравнении показателей различных видеокарт у нас возникли некоторые вопросы, не позволяющие назвать 3DMark 11 идеальным DirectX 11 тестом производительности.

Заключение

Компания Futuremark начала работу над тестовым пакетом, теперь известным как 3DMark 11, ещё несколько лет назад, и на начальных этапах разработки тесты выглядели совсем иначе, чем получилось в итоге. Да и самих тестов по первоначальным планам было больше, изначально планировалось добавить в том числе и синтетические тесты. Но по мере продвижения работ над бенчмарком снизилось количество и сложность сцен, в итоге получился сильно урезанный вариант, использующий явно не все возможности DX11 и не так активно, как надо было бы. На наш взгляд, в релизе просто не виден задел на несколько лет вперёд, какой был в предыдущих версиях 3DMark.

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

В качестве DX11-бенчмарка можно использовать пакет 3DMark 11, но для исследования производительности той же тесселяции гораздо лучше подойдёт Unigine Heaven, контент которого изначально создавался с учётом тесселяции и где её включение обеспечивает видимый эффект. Любопытно, что по нашим данным, в предрелизных версиях 3DMark 11, которые не распространялись публично, тесселяция применялась активнее, и геометрии в кадре было больше. Но к релизу коэффициенты для LOD подкрутили так, чтобы нагрузка на геометрические блоки снизилась. В итоге, самым важным стал тот самый тяжёлый шейдер освещения, о котором мы писали выше.

Вместе с рендерингом теней в сценах всё равно получается очень много треугольников, а в предрелизных версиях в самых сложных тестах среднее кол-во треугольников доходило до десятков миллионов в кадре! Но даже в релизе на видеокартах AMD на итоговую производительность очень сильно влияет скорость отрисовки карт теней. А на видеокартах Nvidia наблюдается больший упор в сложный шейдер объёмного освещения. Похоже, что исследовав производительность разных решений, в Futuremark пошли на некий компромисс — сделав в релизе меньше тесселяции (что выгодно AMD), но и не слишком усложнили вычислительные шейдеры (что на руку Nvidia). Можно по-разному относиться к принятым решениям и распределению нагрузки на блоки GPU, но это — факты.

Наше же мнение заключается в том, что лучше бы 3DMark 11 предложил тестовые сцены, которые загружали бы вычислительные шейдеры и геометрические блоки отдельно друг от друга, и лишь в наиболее сложном — всё вместе. Так хотя бы можно было бы делать какие-то выводы о том, что такая-то видеокарта быстрее обрабатывает геометрию, а другая выступает сильнее в сложных вычислительных шейдерах. А в результате получилось, что непонятно что тестируют в каждом из тестов. И синтетику выкинули вовсе, а ведь в Vantage она была...

Ещё хотелось бы добавить немного субъективных впечатлений от визуального ряда 3DMark 11, да и игровых проектов последнего времени. Современные игры и рассмотренный тест отлично показывают, что глобальных технологических прорывов в игровой графике не будет до следующего поколения игровых консолей, как минимум. Никто специально для ПК-игр не старается, кроме единичных компаний-разработчиков, имена которых всем известны. Да и то, даже их основной целью теперь стали игровые консоли, а к ПК части всё чаще относятся по остаточному принципу. Хотя помощь со стороны Nvidia и AMD помогает нам получить новые возможности даже в мультиплатформенных играх, таких как DiRT 2, HAWX 2, Crysis 2, Metro 2033 и т.д.

Другое давнее наблюдение заключается в том, что качество итоговой картинки ограничено всё больше человеческими ресурсами (количество и потраченное время людей, работавших над дизайном игры), то есть — финансами и временем. Игровая 3D-графика уже давно уперлась не в технологии, а в человеческий фактор, и тот же 3DMark 11 это отлично показывает!

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

Вероятно, 3DMark всё меньше и меньше отражает то, что будет в играх будущего. В предыдущей его версии — Vantage — результаты бенчмарков хотя бы похожи на те, что получаются сейчас в современных DX9/DX10 играх. А вот с 3DMark 11, как нам кажется, может получиться иначе и это может стать уходом ещё дальше в сторону от тренда реальных игр. И для тестов справедливее будет использовать уже вышедшие игры с поддержкой DX11.

Ведь если присмотреться к реализации этих технологичных с виду эффектов внимательнее, то получается, что и они сделаны далеко не идеально. В общем, не похоже это на уровень игр послезавтрашнего дня, и именно из-за недостатка ресурсов, вложенных в продукт. Нам кажется, что запросы 3D-приложений в качественном контенте сильно возросли, а рынок ПК-игр сейчас не такой сильный, чтобы обеспечить хороший доход от 3DMark.

Вот и не смогла компания Futuremark «потянуть» большее по ресурсам. Что смогла имеющаяся команда, то и сделала. По слухам, 3DMark 11 делала команда с численностью меньше, чем предыдущие версии бенчмарка, и вполне возможно, что следующего 3DMark вообще не будет. В том числе и из-за заметно увеличившихся потребностей в ресурсах и засилья мультиплатформенных игр. И на наш взгляд, это — главный вывод статьи о новом бенчмарке 3DMark 11, да и вообще об игровой 3D графике — всё более важным становится контент, а не технологии.

Наверняка, сотрудники Futuremark старались сделать последнюю версию 3DMark таким же качественным набором тестов, какими были версии с 01 по 06. Но нам кажется, что они постепенно теряли что-то важное, начиная с Vantage. И явно не улучшили положение с 3DMark 11. Хотя это никак не скажется на применении тестового пакета, в том числе и у нас на сайте, ведь он всё равно остаётся общепризнанным стандартом, даже несмотря на все его объективные недостатки.




13 мая 2011 Г.

Futuremark 3DMark 11 —

Futuremark 3DMark 11

, Futuremark , , . 3DMark 1998 , MadOnion. , .

, 3DMark , Nvidia ATI(AMD). , , ( ) . 3DMark, PhysX 3DMark Vantage, Nvidia Ageia PhysX CUDA.

, . , , Futuremark , 3DMark . 3D , . , , GPU DirectX 11. 3DMark 11.

3DMark 11 — . 3D : , . 3DMark 11 , , , . CPU, CPU GPU. 3DMark 11 Bullet.

3DMark ? — 3D-, . 3DMark, . , 3D- .

, 3D . GPU, . , , — . 3DMark , Nvidia, AMD, Intel, Microsoft . Futuremark , - . — , , , .

3D- , . 3DMark 11 , . , — .

3DMark , . , Futuremark .

:

  • DirectX 11-
  • Windows Vista Windows 7
  • 1,8
  • 1
  • 1,5

. DirectX 11, . CPU RAM , «» Zacate Atom (, 3DMark 11 ).

3DMark 11, www.3dmark.com, , . , . , 3DMark 11 : , , .

3DMark 11

(Basic) 3DMark Vantage , . 3DMark 11 Futuremark «» , , 1280×720.

, . , , (preset, . ) — Performance. , Advanced Professional. Basic . — Futuremark, .

Advanced $19,95 , , . , 3DMark Score, . Basic, Advanced Futuremark , - . , .

Professional $995, , . , «» ( ), - ( ), , — XML .

Futuremark 3DMark 11 ( ). 1.0 , GPU CPU, .

, , 3DMark.com ( Professional) XML, - . , Futuremark — .

3DMark 11, Futuremark . Antec MSI, ( ). «» Futuremark. , , Basic .

3DMark 11 Professional Edition («Demo looping»), («Image quality tool»), ( ), , .

. , , , , . , 3DMark Score .

MSAA Sample Count , «1» . Texture Filtering Mode : . Max Anisotropy .

Tessellation Detail , . , , GPU. Max Tessellation Factor , .

Shadow Map Size , Shadow Cascade Count — . Surface Shadow Sample Count . , GPU.

Volumetric Illumination Quality — , . «ray marching» . , . Ambient Occlusion Quality — ambient occlusion.

Depth of Field Quality — — . (bokeh), , . Color Saturation , . (wireframe) , .

Futuremark 3DMark 11, 1.01. : SystemInfo , , , Advanced Professional , Image Quality Microsoft.

3DMark, Futuremark . (), , , . -, . 3DMark 11 : Entry, Performance Extreme.

«Entry» (E) 1024×600 , 256 . , , , . , .

«Performance» (P) (3DMark Vantage) 1280×1024. 16:9, 1280×720. , — , .

GPU, 768-1024 , - . DirectX 11- ( Futuremark .

, , . «Extreme» (X) 1920×1080, ( ) . , . , . , .

:

3DMark 11 . , Futuremark, :


, 3DMark 11 , DirectX 11. API 3DMark 06 3DMark Vantage. , DirectX 11 3DMark 11.

, , , , DirectX 11. , , . , 3DMark Vantage, PhysX API, . GPU CPU 3DMark 11 Bullet , DirectCompute.

, 3DMark 11 , : Deep Sea High Temple, .



— , CPU «» . , .

Graphics Test 1

«Deep Sea», , . (volumetric illumination), , . .

Graphics Test 2

«Deep Sea», , . , . .

Graphics Test 3

«High Temple», . , . , . .

Graphics Test 4

«High Temple», , , (, ). 3DMark 11, G-. , .

Physics Test (GT5)

CPU . Bullet. CPU , GPU — , .

Combined Test (GT6)

GPU CPU. , CPU, Bullet, DirectCompute GPU. , : , .

Futuremark DirectX 11, . : Deep Sea High Temple, , , 3DMark 11 .




DirectX 11, , . CPU , DirectX . CPU GPU, .

DirectX 11 CPU . DirectX 11, Civilization V. , 3DMark 11. Nvidia AMD .

(command lists). . (immediate deferred device context), (worker threads) — .

, ( , , DX ) .

DirectCompute

GPU DirectX 11. , , GPU, — , CPU. , .

, CPU . , DX11, . 3DMark 11 , , .

DirectX 11, . . (LOD) . , , GPU .

3DMark 11 , , , . High Temple , . Deep Sea , , . :

3DMark 11 : (displacement map) (Phong tessellation). , . , LOD , . , , . , .

(shadow maps) , . , , , LOD, . .

3DMark , (deferred shading), . G- . ambient occlusion, . illumination .

: Diffuse Specular — DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, Normal — DXGI_FORMAT_R10G10B10A2_UNORM, Ambient Occlusion — DXGI_FORMAT_R8_UNORM, Depth — DXGI_FORMAT_R32_TYPELESS.

, , (draw call). , — . spot . , DXGI_FORMAT_R11G11B10_FLOAT .

— , , , .. , . 3DMark 11 , «Deep Sea» , , «High Temple» — , . , .

3DMark 11 , : bloom. tone mapping ( HDR ) .

(depth of field)

, . DOF, 3DMark 11, , , . (bokeh) , .

DirectX 11 blur , . , DOF . Metro 2033 Just Cause 2 ( CUDA). 3DMark 11 , .

bloom , . 3DMark 11 (Fast Fourier Transform — FFT) . , : blur, streak, flare . , .

3DMark 11 Nvidia Parallel Nsight, 3D CUDA D3D10 D3D11 . , 1.51, 3DMark 11, .

Parallel Nsight . , . 3DMark 11 , . Visual Studio 2010, ( , Nvidia) . ( , — ):



Parallel Nsight «Frame profiler». , , 3D . , Nvidia NVPerfHUD, , . , .

3DMark 11 (deferred) , 3D , . , (Omni, Frustum, Directional), . G-buffer, ambient occlusion, , omni frustum, .

- G-buffer: + (coverage), (diffuse) , (specular) . R10G10B10A2, — R8G8B8A8_SRGB. MRT. , : , , ..




- coverage, , . , (coverage), Z- .

, . , , , — MSAA. , , , .

Horizon-Based Ambient Occlusion (HBAO), , Futuremark. ambient occlusion .

— (shadow maps). . omni frustum (illumination buffer). , — (frustum).

(bounding box) , . , ( , ).


. ray marching, , . . , .

, (depth of field) (bloom). (FFT) (bokeh) . 128- R32G32B32A32.

FFT ( ) , — , . (lens reflections).

, , , 3DMark 11 DetailTessellation11, DirectX SDK. (high-order surfaces), (displacement mapping).

, «» CPU. , . Parallel Nsight GPU Time ( 175 )...

... , , , , Edit State Bucket, ( domain/hull ..). , omni (65 , 40% !):

, GPU ( Geforce GTX 480) Extreme:

GT1 GT2 GT3 GT4 GT6
60-65% 45-50% 45-50% 35-40% 30-35%
0% 20-25% 20-25% 35-40% 15%
20-25% 25-30% 15-20% 10-15% 15%
GPU- 0% 0% 0% 0% 10-15%

, , («» ) 20-25% , ( 75%) — , . , , .

, 20-25% — , FPS 25%, . , (, ). , .

. (draw calls), . , omni, — .

draw calls 98 (65+33) 175 . , 56% — ! , - , - .

, , , , Nvidia GPU . - , AMD Nvidia . GT4 , .

, 3DMark 11, FPS . Futuremark 3DMark 11 . , , « ».

, 3DMark 11 . , , . ? , .

. , . . , (LOD) — , — ( ) .






, . , LOD, 2-3 , (2×2 ).

LOD — , , . — , .



, . , , , , ? , 3D billboard:

, 3DMark (level of detail — LOD) . LOD , , . 3DMark 11 , — .

, (depth of field — DOF) Futuremark , .

(shadowmaps). , , . , , , . , . , , GPU 3DMark 11:




, Nvidia - , .. . , DX11 . 3DMark 11 - . , . (depth of field — DOF) , .

, (fast Fourier transform — FFT) , DirectCompute! , , . GPU ( Nvidia AMD), - render target , - , .

, Nvidia AMD FFT , ( 10 !) , Futuremark , . , Futuremark — , !

, GPU, . GPU Bullet. solver , . GPU- , , Dark Void Mafia 2, , 3DMark.

3DMark 11, 3DMark 11 , , GPU .. , i3D-Speed.

«» , , . , — Performance. , — «» . 3DMark 11 (, 2011 , ).



, , . , . — , AMD Extreme, Nvidia. — , - .

? , 3DMark 11 ( ALU , ) , , MSAA. AMD, , .

, Performance , 3DMark 11: Graphics, Physics Combined.



Graphics Combined , . — Combined ( Graphics) Nvidia AMD, .

. , CPU, AMD Nvidia — , .

Nvidia AMD , CPU. , CPU . , «» Nvidia, CPU . , AMD , , , Physics Test.

, GPU CPU, .




3DMark 11 , ( , ), Nvidia AMD. — Graphics Test 4.

, (Graphics Test 2), ( ) AMD. , Radeon HD 6970 Geforce GTX 580. Cypress Cayman (Radeon HD 5870 Radeon HD 6970, ). «» , . HD 6870 , HD 5870.

, 3DMark 11 : , GPU, , — . , AMD Phenom X4 940 Nvidia Geforce GTX 480.

3DMark 11 CPU GPU . BIOS setup Performance Extreme.


, 3DMark 11 . , , . Performance Extreme, .

Extreme , . .

Performance CPU , . , ( Extreme) CPU, . , .

, . CPU 2,6 3,4 0,4 ( : 2,6, 3,0 3,4 ). Performance Extreme.


, . Extreme GPU, — CPU . , CPU , .

Performance CPU , , . . 3DMark 11 GPU. Geforce GTX 480, 650/1300 750/1500 50/100 .


, . Extreme , Physics, GPU. Performance , CPU , .

, Extreme, GPU, , , .

3DMark 11 Geforce GTX 480. GDDR5 800(3200) 1000(4000) 100(400) .


, Geforce GTX 480 3DMark 11 . , , . , , , GPU.

3DMark 11 , — , GPU, — . , , GPU , 3DMark 11 DirectX 11 .

Futuremark , 3DMark 11, , , . , . , , DX11 , . , , 3DMark.

DirectX 11 3DMark 11, . , LOD. , , — . , 3DMark 11 , , DX11.

DX11- 3DMark 11, Unigine Heaven, . , , 3DMark 11, , , . LOD , . , , .

, - ! AMD . Nvidia . , , Futuremark — ( AMD), ( Nvidia). - GPU, — .

, 3DMark 11 , , — . - , - , . , . , Vantage ...

3DMark 11, . , , . - , -, . , , . Nvidia AMD , DiRT 2, HAWX 2, Crysis 2, Metro 2033 ..

, ( , ), — . 3D- , , 3DMark 11 !

3DMark ( Nature, ), , ... , (, ), — !

, 3DMark , . — Vantage — , DX9/DX10 . 3DMark 11, , . DX11.

, , . , , - , . , 3D- , - , 3DMark.

Futuremark «» . , . , 3DMark 11 , , , 3DMark . - . , — 3DMark 11, 3D — , .

, Futuremark 3DMark , 01 06. , - , Vantage. 3DMark 11. , , , .