Эра Direct3D 12 в компьютерных играх официально наступила, и нет никаких сомнений в том, что этой технологии принадлежит будущее, — столь много усовершенствований вобрал в себя новый интерфейс программирования. Direct3D 12 (и его кроссплатформенный коллега Vulkan) позволяет игровому движку более эффективно распоряжаться ресурсами GPU за счет прямого управления теми задачами, которые в предыдущих итерациях API выполнял драйвер или сами библиотеки Direct3D. Современные GPU в полной мере поддерживают функции рендеринга Direct3D 12 и обеспечивают эффективную интеграцию графики с вычислениями общего назначения (так называемыми асинхронными вычислениями).
Вот только на практике API нового поколения еще далеки от реализации всего заложенного в них потенциала. Не будем приукрашивать картину, которая открылась в первой части тестирования видеокарт в Direct3D 12 и Vulkan. Фактически лишь две из игр, которые мы постоянно используем в качестве бенчмарков GPU, показали, на что способно новое ПО при должном старании разработчиков, — мы говорим о Ashes of the Singularity и DOOM. В остальных тестах при смене API можно рассчитывать в лучшем случае на умеренный рост быстродействия, и то с массой оговорок.
Так, среди графических процессоров последних поколений только большие чипы AMD — Hawaii (Radeon R9 390X), Fiji (Radeon R9 Fury X) и Vega (Radeon RX Vega 64) — проявили большую симпатию по отношению к Direct3D 12. На быстродействие флагманской видеокарты NVIDIA (GeForce GTX 1080 Ti) программный интерфейс в среднем никак не влияет, а остальные «зеленые» процессоры работают под ним хуже, чем под старым. Наконец, Microsoft невольно выдала черную метку чипам с архитектурой Kepler и Maxwell, которые, по всей видимости, уже никогда не обретут полноценной поддержки в игровых движках под Direct3D 12.
Слабость API нового поколения является обратной стороной их силы: «тонкие» библиотеки Direct3D 12 отдали множество функций разработчикам игровых движков, а внедрение нужных приемов программирования в массовом ПО идет с запозданием. Неудивительно, ведь в игровых компьютерах по-прежнему стоит масса видеокарт, которые в лучшем случае лишь формально совместимы с Direct3D 12 и Vulkan, поэтому мощную оптимизацию игр под новые API пока можно наблюдать лишь в отдельных проектах на основе собственных движков.
⇡#Графические API и процессорозависимость
Однако часть функций Direct3D 12 и Vulkan не требует от разработчиков игр особенных усилий. Сама структура конвейера этих API позволяет снизить нагрузку на центральный процессор за счет сокращения времени подготовки draw call, что особенно важно, когда на экране присутствует множество отдельных моделей [прим.: Draw call — команда, требующая создать единственную полигональную сетку (mesh)].
Впервые на эту проблему обратили внимание AMD и DICE, создатели проприетарного низкоуровневого интерфейса Mantle. Первым тайтлом с поддержкой Mantle стала Battlefield 4, но тогда, в 2014 году, игровая графика не была настолько богата геометрией, чтобы центральный процессор ограничивал частоту смены кадров в сбалансированной системе. Даже год спустя мы пришли к выводу (см. наше тестирование процессорозависимости), что любой худо-бедно современный процессор Intel с четырьмя ядрами раскрывает потенциал топовых GPU того времени.
Но за прошедшее время обстановка поменялась: игры стали сложнее, а GPU получили многократно возросшую вычислительную мощность. CPU, напротив, развиваются достаточно медленно с точки зрения однопоточной производительности, а пятое, шестое, седьмое и так далее ядра в играх используются редко. Многие геймеры производили апгрейд с двухъядерного процессора на четырехъядерный с расчетом не менять его еще долгие годы, поэтому сейчас вопрос процессорозависимости вновь стал актуальным.
Самый яркий, хотя и довольно экзотический пример — стратегия Ashes of the Singularity. Ее движок именно за счет быстрой отдачи draw call сильно наращивает быстродействие под Direct3D 12 и Vulkan даже при мощном центральном процессоре. Но в нашей методике есть и другие игры с богатой геометрией. В этот раз мы проведем тестирование на платформе с четырьмя ядрами и сниженной частотой CPU, а потом сравним результаты с тем, что было получено ранее при помощи высокопроизводительного процессора.
В предыдущей части тестирования процессор нашего тестового стенда, Core i7-5960X, работал на постоянной частоте 4 ГГц при восьми активных ядрах. Для имитации более слабого CPU мы отключили половину ядер и установили тактовую частоту на отметке 2,5 ГГц.
Честно говоря, это не очень реалистичная конфигурация для современных CPU Intel (даже младшие модели Core i5 поколений Caby Lake и Coffee Lake берут более высокие частоты при полной загрузке четырех ядер), но она вполне соответствует некоторым моделям предыдущих поколений. 1,5 ГГц — подходящая разница, чтобы наглядно показать связь версии графического API и процессорозависимости, а измерение кадровой частоты на всем спектре моделей современных CPU пусть останется задачей для следующей части нашей серии «Процессорозависимость».
С другой стороны, мы зашли не настолько далеко, чтобы оставить два активных ядра. В современном домашнем ПК такому процессору уже не место, и некоторые игры просто не будут нормально работать на двух ядрах.
По итогам первого тестирования мы дисквалифицировали из участников несколько видеокарт, в первую очередь GeForce GTX 970 и GTX 980 Ti, которые не годятся для игр под Direct3D 12 и Vulkan в силу архитектурных особенностей. Кроме того, были исключены бюджетные игровые видеокарты Radeon RX 560 и GeForce GTX 1050 Ti — у них попросту недостаточно мощные GPU, чтобы оптимизация API сыграла большую роль даже на слабой платформе.
Наконец, мы нашли несколько ошибок в тестовых результатах первой части стати и приведем все данные (как при сильном, так и при слабом CPU) в обобщающих графиках и таблицах. Для того чтобы обеспечить корректное сравнение, новые результаты получены на тех же версиях драйверов (Radeon Software Crimson Adrenalin Edition 18.1.1 и GeForce Game Ready Driver 390.65), которые мы использовали в прошлый раз. Драйверы довольно старые, но, если бы мы повторили тесты на актуальных версиях, это бы не повлияло сколь-либо существенно на результаты. В конце концов, самая свежая из выбранных игр вышла еще в сентябре прошлого года, и драйверы уже содержат оптимизации для всех них. За прошедшее время каких-либо глобальных изменений в ПО, которые поднимают общее быстродействие, производители GPU не внесли.
⇡#Тестовый стенд, методика тестирования
Конфигурация тестовых стендов |
CPU |
Intel Core i7-5960X (4 ядра @ 2,5 ГГц, постоянная частота) |
Intel Core i7-5960X (8 ядер @ 4,0 ГГц, постоянная частота) |
Материнская плата |
ASUS RAMPAGE V EXTREME |
Оперативная память |
Corsair Vengeance LPX, 2133 МГц, 4 × 4 Гбайт |
ПЗУ |
Intel SSD 520 240 Гбайт + Crucial M550 512 Гбайт |
Блок питания |
Corsair AX1200i, 1200 Вт |
Система охлаждения CPU |
Thermalright Archon |
Корпус |
CoolerMaster Test Bench V1.0 |
Монитор |
NEC EA244UHD |
Операционная система |
Windows 10 Pro x64 |
ПО для GPU AMD |
Все видеокарты |
Radeon Software Crimson Adrenalin Edition 18.1.1 |
ПО для GPU NVIDIA |
Все видеокарты |
GeForce Game Ready Driver 390.65 |
Бенчмарки: игры |
Игра (в порядке даты выхода) |
API |
Настройки, метод тестирования |
Полноэкранное сглаживание |
1920 × 1080 / 2560 × 1440 |
3840 × 2160 |
Rise of the Tomb Raider |
DirectX 11/12 |
Макс. качество, VXAO выкл. Встроенный бенчмарк |
Выкл. |
|
Tom Clancy's The Division |
DirectX 11/12 |
Макс. качество, HFTS выкл. Встроенный бенчмарк |
SMAA 1x Ultra + TAA: Supersampling |
TAA: Stabilization |
DOOM |
OpenGL 4.5 / Vulkan |
Макс. качество. Миссия Foundry |
TSSAA 8TX |
Выкл. |
Deus Ex: Mankind Divided |
DirectX 11/12 |
Макс. качество. Встроенный бенчмарк |
Выкл. |
Battlefield 1 |
DirectX 11/12 |
Макс. качество. OCAT, начало миссии Over the Top |
TAA |
Ashes of the Singularity: Escalation |
DirectX 11/12/ Vulkan |
|
Выкл. |
Total War: WARHAMMER II, встроенный бенчмарк |
DirectX 11/12 |
Макс. качество. Встроенный бенчмарк (Battle Benchmark) |
Выкл. |
В тестовую обойму вошли семь игр 2016–2017 годов выпуска, среди которых шесть поддерживают API Direct3D 12 и две — Vulkan. Доподлинно известно, что все они так или иначе задействуют функцию Multi-Engine («асинхронные вычисления»). И пара слов о DOOM. Эта игра использует так называемые Shader Intrinsitc Functions — шейдеры, непосредственно исполняемые на GPU избранной архитектуры, в обход стадии компиляции из высокоуровневого кода. Только Vulkan, в отличие от OpenGL и Direct3D любой версии, дает такую возможность, и только AMD выпустила для Vulkan соответствующее расширение. Собственные Shader Intrinsics есть и у NVIDIA, но они доступны только через проприетарый интерфейс NVAPI или библиотеки GameWorks. Именно поэтому Vulkan в DOOM принес GPU AMD такой мощный прирост быстродействия, хотя не обижены и чипы NVIDIA.
Тесты выполнены при разрешениях 1080p, 1440p и 2160p. Настройки подобраны таким образом, чтобы обеспечить высокую частоту смены кадров (от 60 FPS и выше в режиме 1080p) на мощных GPU последнего поколения.
⇡#Участники тестирования
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.