Введение
Наступивший год не стал исключением из спирали эволюции, принеся инновации и разработки, и новые продукты не перестают появляться. Хорошо, что в мире есть независимые разработчики программного обеспечения, которые пытаются анализировать новые технологические продвижения. За прошедшие годы Futuremark Corporation стала своего рода светочем в мире тестирования 3D-графики, и для многих пользователей тесты компании стали эталоном.
Предыдущие тестовые пакеты Futuremark позволяли геймерам и энтузиастам оценить производительность своей системы в играх, но вместе с тем, они породили немало поводов для скепсиса и сомнений касательно методик тестирования, их реализации и подсчёта баллов. Если часть аудитории благодарила Futuremark за разработку нейтрального инструмента анализа производительности, позволяющего оценить скорость даже грядущих игр, то другие обвиняли компанию в том, что тест не отражает некоторые аппаратные реализации либо использует технологии, к которым игровые разработчики прибегать не будут. Самая новая версия теста вновь стала причиной горячих споров, поэтому мы решили обсудить проблему как с Futuremark, так и с разработчиками GPU.
С предыдущими выпусками 3DMark03 и 3DMark05 Futuremark доказала свою способность глядеть в будущее и предсказывать нужды грядущих 3D-игр и приложений. Но какие грядущие технологии и аппаратные улучшения Futuremark реализовала в 3DMark06? Мы рассмотрим, как новый тест оценивает производительность современных систем, а также постараемся оценить, какие новшества игровые и “железные” разработчики реализуют в будущих играх.
Что и к чему?
Судя по последним годам, видеокарты – наиболее быстро меняющаяся/развивающаяся часть компьютера. Каких-то полгода назад nVidia выпустила 24-конвейерного “монстра” GeForce 7800 GTX. После долгих мучений с проблемами производства, ATi всё-таки представила линейку Radeon X1000. За последний год компании с попеременным успехом боролись за лидирующие позиции на рынке. Конечно, столь быстрая разработка новых видеокарт не даёт техническим журналистам расслабляться. Да и потребитель выигрывает: каждое новое поколение несёт какие-либо улучшения и новый уровень производительности. А старые карты дешевеют.
Быстрые перемены в графической индустрии заставляют тестовые программы развиваться в таком же темпе. Аппаратное обеспечение становится более мощным, поэтому разработчики 3D-игр внедряют новые технологии и методы, чтобы выжать максимум из видеокарты и дать пользователю наиболее качественное погружение в игру.
FutureMark разрабатывает тестовые пакеты, позволяющие оценить производительность “железа” и взглянуть на его работу в будущих условиях. Сегодня Futuremark предлагает несколько тестовых пакетов, включая PCMark для оценки общей системной производительности, SPMark для телефонов и 3DMark Mobile для мобильных устройств OpenGL ES. Но, конечно, флагманский продукт компании – 3DMark. Сегодня Futuremark заявляет о более 30 миллионах зарегистрированных результатов 3DMark в базе Online Result Browser (ORB).
После выхода первой версии пакета 3DMark99, компания решила ориентироваться на перспективные технологические инновации. Тогда трансформация и освещение (T&L), мультитекстурирование и новые модели шейдеров казались далёким будущим, но оно неотвратимо наступило. Хотя DirectX 10 API ещё не завершён, а после 3DMark05 изменений произошло немного, новый тестовый пакет 3DMark06 всё же появился. Ниже мы его подробно рассмотрим.
Интервью с Ником Ренквистом из Futuremark
Игровой тест 1 в 3DMark03.
Сначала мы решили пристрастно допросить Ника Ренквиста (Nick Renqvist) из Futuremark. Его комментарии будут встречаться на протяжении всей статьи, поскольку информация должна идти от первоисточника. Но давайте поинтересуемся, чем Ник занимается в Futuremark?
THG. Ник, кем ты работаешь в Futuremark?
Ник Ренквист. Моя официальная должность – программист-разработчик тестов (на английском – Benchmark Development Architect), то есть я глубоко знаю структуру всех наших тестов для ПК. Кроме того, я с головой погружён в исследования новых и интересных функций и технологий.
THG. Сколько времени Futuremark работала над проектом 3DMark06, от начала и до конца? Какие были “подводные камни”?
Ник Ренквист. На разработку 3DMark06 ушло примерно 12 месяцев. Развитие такого крупного проекта, как 3DMark, невозможно без преград, которые нам приходилось обходить. Реализовывать новые неизведанные технологии всегда сложно, поскольку под рукой нет справочника или руководства пользователя. Большинство технологий, использованных в 3DMark06, являются плодом труда наших внутренних разработчиков.
Возьмите, например, эффект рассеивания под поверхностью (subsurface scattering). Конечно, мы читали про этот эффект и знали, что он собой представляет, но никогда ещё не видели его в реальности. Ушло немало времени на то, чтобы реализовать его так, как нам хотелось бы. Посмотрите на этот эффект в 3DMark06. На мой взгляд, наша команда неплохо поработала над ним. И наверняка этот эффект будет использоваться в будущих играх. Он отнимает не очень много производительности, а в паре с правильно подобранными настройками, значительно улучшает визуальную привлекательность. Например, в “Глубокой заморозке” (“Deep Freeze”) мы включили эффект в шейдер снега, поскольку без него снег выглядел просто неправдоподобно.
Ниже приведена таблица сравнения характеристик из документации Futuremark 3DMark06.
Как можно видеть, Futuremark перешла от трёх тестов Shader Model 2.0 к двум, а также добавила поддержку Shader Model 3.0 с высоким динамическим диапазоном (High Dynamic Range, HDR) на двух тестах. Первые два теста особо не поменялись: была несколько доработана детализация трёх оригинальных тестов, усилены тени и повышено разрешение текстур.
Все эти изменения нацелены на видеокарты Shader Model 3.0. В своей документации Futuremark указывает: “ShaderModel 3.0 (SM3.0) является новым ключевым элементом 3DMark06. И хотя новая версия шейдеров присутствует в DirectX 9 уже достаточно долго, она почти не использовалась в играх или приложениях до последнего времени. Однозначную причину назвать сложно, но одна из них – отсутствие широкой аппаратной поддержки SM3.0.
Сегодня появилось большое число независимых производителей аппаратного обеспечения с поддержкой SM3.0, так что ситуация, как мы считаем, меняется. SM3.0 открывает большое число новых возможностей: регистр vPos register, динамическое управление потоком (dynamic flow control), производные инструкции (derivative instructions), а также большое число слотов инструкций для всех ключевых элементов SM3.0. И все эти функции разработчики будут внедрять в будущих играх. 3DMark06 использует SM2.0 и SM3.0, а также (по умолчанию) выбирает наиболее “тяжёлый” профиль для “железа”, включая 3.0. В принципе, профиль можно выбрать и вручную, чтобы сравнить производительность в разных режимах”.
История 3DMark
В результате совместного проекта голландского издателя VNU European Lab и финской студии разработчиков Remedy Entertainment, на свет появился тест Final Reality. Он стал одной из первых попыток создания массового графического приложения для тестирования. В то время Remedy Entertainment владела акциями ещё одной компании, MadOnion, которая вскоре превратилась в Futuremark.
Первый тест под названием 3DMark появился в октябре 1998. Это был тест DirectX 6, включавший несколько специальных игровых прогонов и позволявший оценивать производительность разных видеокарт. Remedy тесно работала с MadOnion, которая лицензировала для тестового пакета движок MAX-FX и добавила ряд улучшений вроде теста наложения неровностей (bump map). Движок MAX-FX использовался и в игре Max Payne, а модифицированная версия перешла и на Max Payne 2.
6 декабря 1999 года вышел 3DMark 2000. Новый тестовый пакет призван был оценивать производительность аппаратной реализации трансформации и освещения (T&L) видеокарт под DirectX 7 (Direct3D). Первым графическим процессором, частично бравшим на себя задачу расчёта геометрии, стал NV10 или GeForce 256. В нём использовался аппаратный движок трансформации и освещения. Для видеокарт, не поддерживавших T&L аппаратно, запускалась программная эмуляция.
GeForce 256 содержал 23 млн. транзисторов и использовал DDR SGRAM.
В марте 2001 года 3DMark вышел в виде 3DMark2001 с тремя тестами DirectX 7.0 и поддержкой DirectX 8.0 в четвёртом тесте. Конечно, последний тест шёл только на самых последних видеокартах, но именно из-за этого многие пользователи посчитали 3DMark тестом, ориентированным на перспективу. В нём появилась возможность включать полноэкранное сглаживание (FSAA) и добавились тесты наложения неровностей методами DOT3 и Environment Mapped Bump Mapping.
В 2002 году MadOnion превратилась в Futuremark Corporation. На горизонте уже появились программы-шейдеры, поэтому Futuremark Corporation выпустила 3DMark03. Этот тестовый пакет ушёл от движка MAX-FX и нацелился на “тяжёлое” использование шейдеров. Futuremark использовала более сложную версию движка для вывода динамических трафаретных (stencil) теней во втором и третьем тестах, а также в тесте Ragtroll. 3DMark03 также содержал Havok Game Dynamics SDK, позволяющий оценить разные режимы. Четвёртый тест “Мать Природа” (Mother Nature) стал впервые использовать Shader Model 2.0 для вершинных и пиксельных вычислений.
Обновлённый движок
По информации Futuremark, тест 3DMark05 использует новый движок рендеринга, который “больше похож на игровой движок, чем тот, который использовался в 3DMark03”. Новая версия больше выжимает из стандарта Microsoft DirectX 9, поскольку 3DMark03 в этом отношении был, скорее, пробной версией, ограниченно использующей возможности DirectX 9.
3DMark05 отошёл от Shader Model 1.x, потребовав от видеокарт полной поддержки DirectX 9, как минимум, с версией Shader Model 2.0 для вершинных и пиксельных вычислений. Когда Microsoft выпустила в 2004 году обновление DirectX 9 до версии 9.0c, привнёсшее Pixel Shader 3.0, Futuremark выпустила патч 1.2.0, соответствующий новшеству с другими мелкими правками. Как утверждает документация Futuremark по 3DMark05, “движок 3DMark05 динамически строит шейдеры для каждого материала в формате HLSL (High Level Shader Language), а затем эти шейдеры компилируются в реальном времени, чтобы наилучшим образом работать на установленной видеокарте”.
Для создания теней Futuremark использовала карты теней Light Space Perspective Shadow Maps (LiSPSM). Данный шаг позволил оценить производительность с включёнными динамическими тенями в реальном времени. Однако такой аппаратно-связанный подход получил немало критики от сообщества, поскольку отходил от заложенных раньше принципов, разделяя пути расчёта теней. 3DMark05 использовал карты теней (PSM, разновидность Projection Shadow Map), но могли возникать проблемы с проекцией теней (self shadowing). Обновление их решило.
Но проблема заключается не в том, что эти тени создаются с помощью карт глубины 2048×2048. Проблема кроется в реализации более чем одного пути рендеринга в зависимости от аппаратной поддержки, как описано выше. Тени могут выводиться в формате R32F, но если есть аппаратная поддержка DST (depth stencil textures), то используется альтернативная карта глубины D24X8 того же размера. Трафаретные (stencil) текстуры сегодня поддерживаются картами обоих производителей, но nVidia использует особый формат глубины Percentage Closer Filtering (PCF). ATI PCF не поддерживает, поэтому в играх nVidia получает преимущество.
На самом деле практическая разница невелика, но Futuremark заявила в документации: “Конечно, можно сказать, что DST и аппаратная реализация PCF против кода не-DST с Point Sampling не дают равной производительности, поскольку небольшие различия есть. 3DMark05 был разработан с твёрдой уверенностью нашей компании, что два упомянутых варианта сравнимы между собой, да и так, как нам кажется, мы будем ближе отражать производительность в грядущих 3D-играх”. В свою защиту Futuremark разрешила форсированно включить равную аппаратную обработку для всех карт, если того пожелает пользователь. Но проблема в том, что большинство не знает этого, либо не желает так делать. Большая часть опубликованных результатов получена при настройках по умолчанию, поскольку именно так легче всего протестировать разные системы с идентичными параметрами.
Обновлённый движок в 3DMark06
Экран проверки сглаживания и анизотропной фильтрации.
Настало время перейти к 3DMark06. Futuremark взяла существующий движок от 3DMark05 и добавила наполнение с Shader Model 3.0 и другими функциями DirectX9. Они включают 16-битные текстуры с плавающей запятой, а также 16-битное смешение (blending) с плавающей запятой. Эти аппаратные функции упомянуты в API DirectX. В чипах nVidia они реализованы аппаратно, в то время как ATi решила использовать для их вывода шейдеры, а не прямую аппаратную часть.
Ещё одним модным словом сегодня можно назвать HDR-рендеринг (высокий динамический диапазон, High Dynamic Rang). Мы ещё обсудим его чуть ниже, но Futuremark сделала HDR-рендеринг “ключевым элементом нового движка”, он используется в обоих тестах SM 3.0.
Здесь можно изменять профиль вершинных шейдеров.
Движок в 3DMark06 аналогичен 3DMark05 и по-прежнему использует формат HLSL для построения шейдеров. Опять же, “шейдеры компилируются таким образом, чтобы наиболее хорошо соответствовать установленной видеокарте, либо пользователь может сам указать, какой вычислительный профиль использовать”. На этот раз в документации 3DMark06 упомянуто, что “можно сравнивать производительность при использовании разных профилей компиляции шейдеров на одной и той же видеокарте”.
Здесь можно менять профиль пиксельных шейдеров.
3DMark06 отошёл от карт теней Perspective Shadow Maps, дабы реализовать ещё один тип теней, названный Cascaded Shadow Maps (CSM). Они позволяют выводить динамические тени для всех объектов на экране независимо от угла. Futuremark разделяет поле зрения камеры на пять частей по оси Z. Не будем вдаваться в детали, но технология CSM позволяет выводить тени для всех объектов, независимо от их угла. Она использует карты теней 2048×2048. Если видеокарта поддерживает текстуры глубины, то используются карты глубины D24X8 (32-битный Z-буфер, 24 бита на канал глубины) или DF24, иначе для карты глубины будет использоваться однокомпонентная 32-битная текстура с плавающей запятой R32F.
Рендеринг теней и высокий динамический диапазон
В 3DMark05 мы получили три игровых теста: “Возвращение в Проксикон” (Return to Proxycon), “Лес со светлячком” (Firefly Forest) и “Полёт по каньону” (Canyon Flight). Все они остались в 3DMark06 с некоторыми модификациями. Первые два по-прежнему используют Shader Model 2, но они были улучшены: добавлена возможность использования аппаратной поддержки теней с помощью технологии Percentage Closer Filtering (PCF), которая поддерживается чипами nVidia и была объявлена в картах ATi X1000 с Fetch4. В тесте “Возвращение в Проксикон” (Return to Proxycon) Futuremark добавила световые источники. Кроме того, во всех сценах используется более высокое разрешение карт теней.
Двигаясь в направлении HDR, Futuremark взяла игровой тест “Полёт по каньону” (Canyon Flight) и существенно его доработала. Тест был переведён с Shader Model 2 на Shader Model 3. Была увеличена длина кода шейдеров, чтобы вместить очень приятные глазу улучшения воды, монстра и освещения. HDR-рендеринг – ключевая особенность как обновлённого “Полёта по каньону”, так и нового игрового теста “Глубокая заморозка” (Deep Freeze), представляющего собой симуляцию захода солнца на заброшенной полярной станции. Для симуляции изменений в освещении при закате солнца тест использует шейдеры.
Мы поинтересовались у Ника о новых реализациях теней.
THG. В документации указана технология Cascade Shadow Maps с картами теней 2048×2048. Не слишком ли много графической памяти всё это займёт?
Ник Ренквист. 3DMark06 нацелен на карты с 256 Мбайт видеопамяти или ещё большим количеством, так что карты теней 2k x 2k – не слишком высокая нагрузка. Мы хотели получить высококачественные реалистичные тени, и для данного уровня качества без карт теней 2k x 2k не обойтись. Я не сомневаюсь, что игровые разработчики будут использовать в играх карты теней с высоким разрешением. Будет ли эта опция реализована по умолчанию или её можно будет выбирать в виде “максимального качества теней”, это пусть решает разработчик. Современные видеокарты оснащаются уже 512 Мбайт видеопамяти, поэтому я не вижу никаких причин не использовать карты теней с высоким разрешением, которые улучшат качество картинки.
THG. Немало критики в 3DMark05 вызвало использование двух путей просчёта теней. Когда производители графических чипов постоянно борются за первое место, даже мизерная разница в производительности бывает важна. Не считаете ли вы, что несколько путей просчёта теней делают сравнение более противоречивым?
Ник Ренквист. В 3DMark06 есть поддержка двух аппаратных подходов просчёта теней, а также двух реализаций обработки границы теней. Мы уверены, что игры будут поддерживать аппаратный вывод теней (если технология просчёта теней это позволяет), так что этот шаг для нас тоже логичен. Аппаратный просчёт теней по умолчанию включён, поскольку в данном случае 3DMark06 даёт лучшее представление о производительности реальных игр на видеокартах, аппаратно поддерживающих эту функцию.
THG. Где вы использовали технологию Percentage Closer Filtering, а где Fetch4? Похоже, что Futuremark использует их только в тестах SM2.0. Если это так, то почему данное аппаратное ускорение используется только в двух тестах?
Ник Ренквист. 3DMark06 использует аппаратную поддержку билинейной PCF и Fetch4 для теней только в графических тестах SM2.0. Из-за размера и особенностей ядра фильтрации теней в графических тестах HDR/SM3.0 мы не смогли использовать упомянутые технологии.
Тесты CPU обязательны для общего результата
Futuremark изменила алгоритм расчёта финального результата, в котором теперь учитываются и тесты CPU. До версии 3DMark06 финальный результат высчитывался по результатам производительности только графической подсистемы. Если вспомнить, то 3DMark01SE давал финальный результат при выборе всего одного игрового теста. В 3DMark06 результат зависит от того, насколько производительна связка видеокарты и процессора. Так что тест стал теперь и системным, а не только графическим. Конечно, игры зависят от производительности системы в целом, в частности, когда искусственный интеллект компьютерных персонажей взаимодействует с игроком. Да и физика, как мы недавно убедились, налагает на систему всё большие требования.
Два теста CPU запускают игру под названием “Красная долина” (Red Valley). Долина защищена одним медленным танком, который уничтожает быстрые движущие цели, направляющиеся к входу в базу. Futuremark указывает, что “игровые сцены нагружают CPU тремя способами: игровой логикой, физикой и искусственным интеллектом поиска пути”. Поэтому нагрузка разделена на три потока. Игровая логика и графический движок работают в первом потоке, а симуляция физики – во втором. При каждом физическом шаге поток физики синхронизируется с главным.
Частота кадров остаётся очень низкой, около двух кадров в секунду или меньше, в зависимости от вашей системы. Расчёт искусственного интеллекта для каждого “рабочего” потока масштабируется на количество доступных процессоров. Поэтому чем больше процессоров (или ядер) использует ваша система, тем лучше будет распределяться нагрузка. В тесте используется 87 ботов, так что масштабироваться нагрузка может вплоть до 87 процессоров.
Futuremark для расчёта физики использует пакет разработки SDK и библиотеку Ageia. Физические требования теста описаны следующим образом: “Симуляция игрового мира с 87 объектами шагами по 20 мс. В нагрузку основного потока добавлены некоторые физические операции вроде столкновений и другие”.
Что интересно, во время нашего общения с Havok и Ageia на конференции Game Developers Conference (GDC), обе компании заявили, что 3DMark06 тестирует не физику, а графику. Так что перед нами не лучший тест для оценки аппаратного ускорения физики. Для этого придётся дождаться другого теста, но Futuremark всё же добавила некоторое ускорение физики в новый тест функций, не влияющий на результат.
На основе теста CPU Futuremark добавила небольшую игру. Если вам надоело тестировать, то можно немного поиграть.
Мы спросили Ника о том, каким образом Futuremark использует физику в 3DMark06.
THG. Как мы знаем, вы перешли с SDK Havok на PhysX. Почему? Связано ли это с тем, что решение Ageia бесплатное, или в дело вступили другие факторы?
Ник Ренквист. AGEIA PhysX оптимально подошёл нашим нуждам в 3DMark06.
THG. Можете ли вы прокомментировать реализацию физики?
Ник Ренквист. В тесте CPU мы используем статическую сетку столкновений и выпуклые динамические малополигонные сетки (convex dynamic low-poly mesh) для каждого объекта. Мы учитываем силы и вращающие моменты в расчётах игровой логики, чтобы двигать объекты вперёд и реагировать на столкновения, запуская звук, эффекты частиц и процедуру уничтожения объекта. Мы используем просчёт лучей (ray trace) в физическом мире, чтобы симулировать действие луча лазера и детонацию, а также для базового управления движением объектов и камеры.
THG. Вы проводите тесты физики или оцениваете только графическую производительность?
Ник Ренквист. В тестах CPU мы используем физику, но не опираемся на какие-либо специальные тесты физических опций. На данный момент тесты не предназначены для оценки каких-либо аппаратных ускорителей физики, присутствующих в системе.
THG. В каких тестах вы используете упомянутый SDK?
Ник Ренквист. Библиотека физики AGEIA PhysX используется только в тестах процессора 3DMark06.
Прочие тесты
Подобно предшествующим версиям, в 3DMark06 есть тесты функций, позволяющие оценить ту или иную область графической подсистемы. Пять из тестов уже присутствовали в 3DMark05, поэтому мы лишь вкратце их упомянем. Первые два теста оценивают скорость заполнения (fill rate), такие тесты появились ещё в 3DMark2000. Скорость заполнения измеряется в миллионах текселей в секунду. Напомним, что под текселем (texel) подразумевается один элемент текстуры (пиксель) по терминологии Microsoft Direct X. Теоретически скорость заполнения высчитывается как число пиксельных конвейеров, умноженное на тактовую частоту (nVidia). ATi, со своим модульным дизайном, определяет скорость заполнения как произведение текстурных блоков на тактовую частоту.
Третий тест оценивает пиксельные шейдеры. В нём выводится вид на стену каньона из соответствующего игрового теста “Полёт по каньону” (Canyon Flight) в 3DMark05, причём вид поворачивается по мере того, как источник света движется по небу. Результат тестов выводится в кадрах в секунду.
Четвёртый и пятый тесты оценивают вершинные шейдеры. Четвёртый тест использует четырёх тварей из “Полёта по каньону” 3DMark05 и поворачивает их в пространстве. В пятом тесте вращается квадратный участок с травой.
Оба теста вершинных шейдеров дают результат в миллионах вершин в секунду. nVidia и ATi рассчитывают теоретическое значение одинаково: число вершинных блоков на тактовую частоту, поделить на четыре (поскольку полный просчёт вершины происходит за четыре такта).
Первый из новых тестов Shader Model 3.0 – тест частиц. Он вычисляет траекторию с помощью подхода timestepping (разбивка времени на шаги) через интегрирование Эйлера (метод дифференциальных вычислений). В общей сложности используется 409 700 частиц, на которые влияют силы тяготения и сопротивления воздуха. Результат выводится в кадрах в секунду.
Тест требует видеокарту с аппаратной поддержкой SM 3.0 и Vertex Texture Fetch (VTF). Эта технология используется для карт смещения (displacement mapping), когда вершинные и пиксельные шейдеры обмениваются данными друг с другом. Напомним, что VTF не поддерживается картами ATi, зато линейка ATi X100 позволяет выполнять вычисления с точностью FP32, то есть можно использовать возможность рендеринга в буфер для получения тех же результатов. Чипы на основе дизайна R4xx (Radeon X800) могут выполнять вычисления лишь с точностью FP24.
Последний тест использует технологию суммирования шума Перлина, названную по имени создателя (Кен Перлин). Тест основан на “шести октавах трёхмерного симплекс-шума Перлина, использует комбинацию арифметических инструкций и запросов текстур”. Шум Перлина – специальная математическая технология, использующая случайные числа. Шум Перлина появился в графике по причине того, что он позволяет создавать красивые текстуры мрамора, пламени и облаков. Шейдер в данном тесте состоит из 495 инструкций: 48 запросов текстур и 447 арифметических. Результат теста выдаётся в кадрах в секунду.
Расчёт результатов
В итоге тестирования пользователь получает результат в баллах. Он в 3DMark06 высчитывается по следующей формуле.
Первая строчка указывает на игровые тесты Shader Model 2.0, а именно на “Возвращение в Проксикон” (Return to Proxycon) и “Лес со светлячком” (Firefly Forest). Результат определяется как половина общих игровых баллов. Суммарное значение fps двух тестов умножается на 120 и делится пополам.
Вторая строчка указывает на тесты Shader Model 3.0 с поддержкой HDR, составляя вторую половину общих игровых баллов. Суммарное значение fps третьего и четвёртого игровых тестов (“Полёт по каньону SM 3.0” и “Глубокая заморозка”) умножается на 100 и делится пополам. В третьей строчке результат высчитывается, как корень из произведения fps двух игровых тестов, умноженный на 2500.
Как видим, общий балл очень сильно зависит от результатов игровых тестов. Но если графическая карта не поддерживает тесты SM 3.0, то работает альтернативный подсчёт: игровой результат высчитывается как 75% от значения баллов SM 2.0.
Альтернативный метод подсчёта нам не нравится по нескольким причинам. Во-первых, если тест прогонять на системе с быстрым процессором, но с картой SM 2.0, то производительность процессора будет сказываться сильнее, чем в случае карты SM 3.0. Во-вторых, это единственное исключение в подсчёте результатов. Скажем, мы используем 3DMark06 для проверки режимов анизотропной фильтрации и сглаживания карты. Поскольку карты nVidia не поддерживают смешение (blending) с плавающей запятой при включении мультисэмплинг-сглаживания, то почему нет подобного исключения при подсчёте? Мы решили поинтересоваться у Futuremark.
THG. В 3DMark06 появилась поддержка тестов с HDR, которая требует видеокарт с аппаратной реализацией SM3.0 с FP16 для текстур и смешения. Да, картинка выглядит великолепно, но возникает один вопрос. При расчёте производительности карт, которые упомянутую функцию не поддерживают, вы берёте 75% от результатов тестов Shader Model 2.0. Но, скажем, текущее поколение карт ATi поддерживает HDR в паре со сглаживанием, в то время как nVidia сегодня не может обеспечить FP-смешение совместно с мультисэмплинг-сглаживанием. Насколько честным вы считаете отказ от выдачи результатов, если видеокарта не поддерживает аппаратно ту или иную функцию, скажем, HDR? Почему бы не сделать искусственный подъём результатов, как в случае SM2.0?
Ник Ренквист. Мы потратили немало времени на поиск формулы, которая хорошо бы подошла для расчёта производительности видеокарт как поколения SM2.0, так и SM3.0. В частности, мы хотели, чтобы владельцы карт SM2.0 смогли запускать 3DMark06 и получать сравнимые баллы 3DMark.
Основное правило расчёта баллов 3DMark06 гласит, что если карта способна пройти все четыре (или два, как в случае видеокарты SM2.0) графических теста с настройками по умолчанию, она должна проходить их и в дополнительных режимах (сглаживание, анизотропная фильтрация и т.д.) Правило не касается какого-либо одного разработчика чипов и применимо ко всем картам. Правило было введено, чтобы результаты 3DMark нельзя было трактовать ошибочно или неправильно.
Перспективы
Мы поинтересовались у Ника будущим игровых разработок и Futuremark, в частности.
THG. В документации также сказано, что вы добавили немало освещения. Мы побеседовали с несколькими специалистами, которые утверждают, что управление потоком (flow control) в шейдерах позволит разработчикам лучше работать со светом. Конечно, каждый источник света может не влиять на остальную сцену (вне поля зрения), но перед появлением управления потоком не было эффективных способов изоляции света за пределами сцены. Для света за сценой, скажем, в прилегающей комнате, можно добавить нулевое значение, но это накладно. Раньше приходилось выполнять всю математику, в том числе и вхолостую, но сейчас же можно отказаться от бесполезных вычислений по другому переходу. Как вы думаете, грядущие игры будут сильно зависеть от ветвлений в коде?
Ник Ренквист. Весьма сложно предсказать, что игровой разработчик пожелает использовать в игре. Многие игры, которые выйдут в этом году, уже находятся в разработке несколько лет, и новые технологии и подходы вряд ли кто-то рискнёт интегрировать перед самым выходом. Но игровые разработчики по-прежнему опираются на роскошную возможность использовать разные пути кода для графических процессоров разных производителей, и даже для разных поколений от одного производителя. В 3DMark06 мы использовали один код для всех графических чипов (за исключением аппаратной поддержки теней), поэтому нам пришлось создавать очень сбалансированную смесь всего. Но даже и не пытаясь предсказать, что будут делать игровые разработчики, можно смело сказать: значимость управления потоком (Data Flow Control, DFC) в будущем может возрасти.
THG. Как Futuremark реализовала в 3DMark06 управление потоком? Какие оптимизации вы внесли, чтобы управление потоком повысило производительность на видеокартах, способных использовать эту функцию API?
Ник Ренквист. Все графические тесты в 3DMark должны содержать сбалансированную смесь разных функций. Возможно, на рынке в 2006 году или 2007-м появятся игры, которые будут использовать ряд функций SM3.0 в большей степени, нежели мы это сделали в 3DMark06, но для нас главной целью было достичь правильного баланса. В 3DMark06 мы сбалансировано использовали все возможности SM3.0 (DFC, большое число слотов инструкций, регистр vPos и т.д.), чтобы избежать чрезмерной зависимости от одной или двух специальных функций. Если бы мы в значительной мере опирались на ту или иную функцию, то тест графической производительности превратился бы в тест функций, а нам это не нужно. Для проверки отдельных функций мы добавили соответствующие отдельные тесты.
THG. Если вернуться к обработке вершин, то 3DMark всегда был впереди по числу полигонов. Futuremark указывает, что “среднее число полигонов в каждом кадре игры превышает 1 500 000”. Но графические карты не наращивают число вершинных блоков, в то время как пиксельные конвейеры растут, как на дрожжах. Технологии изменили способ работы разработчиков со сценами. С учётом этого, в каком направлении, по мнению Futuremark, будет развиваться игровая индустрия: полигоны или технологии программирования? Как это учитывается в 3DMark06?
Ник Ренквист. С точки зрения разработчиков, нам нужно всё и побольше! Возможно, лучшим путём будет правильная смесь полигонов и новых техник программирования, но всё зависит от содержания. Мы по-прежнему используем большое число полигонов в тестах 3DMark06, ведь некоторые сцены перешли из 3DMark05. Как мне кажется, игровая индустрия будет двигаться вперёд по обоим направлениям: больше полигонов и больше техник программирования (где можно). Некоторые считают квадратные головы у персонажей в порядке вещей, но мне это не нравится. Какие вы там техники программирования не используйте, голова всё равно будет квадратной. Конечно, я знаком с некоторыми технологиями, которые могут “округлить” объект с малым числом полигонов, но они себя не оправдывают. По крайней мере, пока.
THG. Каков следующий уровень освещения и HDR? Что будет использовать Futuremark в следующей версии 3DMark? Она появится вместе с DX10?
Ник Ренквист. Мы с оптимизмом смотрим в будущее и с нетерпением ждём появления новых инновационных технологий. Сегодня мы много экспериментируем, но я не могу приоткрыть завесу тайны. Всё, что я могут сказать: виденные мною плоды труда наших программистов в реальном времени буквально сносят крышу.
THG. Какие функции вам хотелось бы добавить в 3DMark06?
Ник Ренквист. Всегда есть функции и эффекты, которые не появились в финальном продукте. Когда мы начинаем разработку нового теста 3DMark, то набираем гигантский комплект функций и эффектов. Во время разработки оказывается, что тот или иной эффект вовсе и не такой полезный. Вряд ли стоит тратить недели (или месяцы) разработки на реализацию какой-то функции, которая будет сомнительно полезной. Поэтому мы от неё и отказываемся. Но мне очень нравится число новых и свежих эффектов и функций, которые появились в 3DMark06. Однородный туман, эффект рассеивания под поверхностью (sub-surface scattering), HDR и всё остальное немало улучшают картинку на вашем мониторе.
THG. Читатели всегда задают этот вопрос, поэтому не удержимся и мы: планирует ли Futuremark выпускать отдельные игры, вроде той же “Битвы за Проксикон” (Battle for Proxycon)?
Ник Ренквист. Я бы с радостью выпускал игры по каждому тесту! Но пока у нас нет планов выпускать или разрабатывать игру по “Проксикону”. Я не говорю “никогда”, поскольку не знаю, что нам готовит будущее.
THG. Можем ли мы ждать 3DMark07 сразу после выхода DX10?
Ник Ренквист. Я, опять же, не могу ответить точно. Но 3DMark вернётся, однозначно.
THG. Спасибо за потраченное время и усилия! Было очень интересно!
Ник Ренквист. Не за что. Я желаю вам и вашим читателям ещё одного интересного и удачного года. Следите за новыми объявлениями от Futuremark в 2006!”
Заключение
Futuremark создала очень успешный и конкурентоспособный тест 3D-графики. У графической подсистемы и у компьютера в целом можно тестировать огромное число разных параметров. Мы постарались раскрыть внутреннее содержание нового теста 3DMark06. Думаем, вполне удачно и интересно.
Что касается графических тестов, то добавление в результирующие баллы тестов CPU ставит 3DMark06 в менее удачное положение по сравнению с предыдущими тестами, поскольку для получения финального результата графическую подсистему нельзя протестировать отдельно. Да и искусственное изменение результата при сравнении поколений видеокарт (SM2.0 и SM3.0) кажется нам тоже не очень удачным.
Лучше бы 3DMark перешла на выдачу трёх результатов: один для графики, второй – для процессора и других подсистем, а третий – финальный. Большинство пользователей смотрят только на финальный результат 3DMark, но он не является чистой оценкой графической подсистемы, определённый процент баллов обусловлен производительностью центрального процессора. И хотя в играх мы получаем тоже единый результат, зависящий от всего в целом, в играх нет возможности протестировать и проанализировать отдельный компонент системы, какая есть в 3DMark.
В целом, 3DMark06 – хороший тест для оценки производительности игровых систем, но он всё же не соответствует нашим критериям оценки чистой графической производительности. Большие надежды мы и игровое сообщество возлагаем на новую версию Futuremark, которая выйдет после DirectX 10. Будет интересно, насколько хорошо новый тест сможет оценивать физику, поскольку сегодня этот игровой аспект активно развивается.