Железный эксперимент: DirectX 12 против DirectX 11
На словах у Microsoft все просто великолепно. DirectX 12 дает программисту полный доступ к комплектующим компьютера.»Полный доступ к ресурсам железа» способствует лучшей оптимизации игр. Если это интересно разработчику, конечно же. А »улучшенная оптимизация» — это рациональное использование системных требований. Цепочка ясная и логичная. По идее, все должны быть в плюсе. Разработчики реализуют свой творческий потенциал и обзаведутся любовью (и денежками) геймеров. Игроки получат качественный продукт без серьезных затрат на покупку очень мощного компьютерного железа.
30 сентября 2016 года DirectX исполнится 21 год. Но только в 12-й версии Microsoft решила перейти к низкоуровневому программированию.
Я уже высказывал свое мнение относительно DirectX 12. В последнее время среди компьютерных (и консольных тоже) игр присутствует слишком много низкокачественного продукта. Халтурят все, даже так называемые ААА-проекты то и дело щупают дно. Складывается впечатление, что разработчики вообще не утруждают себя тестированием и оптимизацией своей продукции. Либо бешенные дедлайны маркетологов заставляют программистов выпускать в продажу откровенно сырой продукт. В результате качество графики в компьютерных играх за последние пару лет кардинальным образом не увеличилось. Чего не скажешь о системных требованиях. Купить видеокарту за 650 долларов США, чтобы не получить 60 кадров в секунду в разрешении Full HD — это уж слишком, знаете ли! Выход видеокарт Polaris и Pascal отчасти исправит эту ситуацию, ведь откровенно устаревший 28-нанометровый техпроцесс используется вот уже целых пять лет. Переход на 16-нанометровые «рельсы» даст серьезный толчок в плане быстродействия. В сложившейся ситуации помочь должен и DirectX 12. Конвейер заработал, в марте поддержкой нового API обзавелись достаточно культовые франшизы про «Агента 47» и расхитительницу гробниц Лару Крофт.
Железный эксперимент: DirectX 12 против DirectX 11
Коротко o DirectX 12
Про основную «фишку» DirectX 12 я написал. Низкоуровневый API снижает уровень абстрагирования оборудования. Подробно про двенадцатую версию детища Microsoft мы уже писали. Не вижу смысла повторяться. Возможности DirectX 12 в «вакууме» наглядно демонстрирует специальный тестовый пакет бенчмарка 3DMark. Согласно результатам, эффективность низкоуровневых API (не забываем про Mantle и Vulkan) выше минимум на порядок. Все очень просто: DirectX 11 накладывает ограничения на количество команд отрисовки центрального процессора. Но будем честны: 3DMark — это всего лишь 3DMark. Цифры красивые, однако с реальностью никак не соотносятся.
Сравнение производительности DirectX 11 и DirectX 12 в 3DMark
DirectX 12 поддерживается всеми современными видеокартами, но есть один нюанс. API разделен на три уровня: DirectX 12 API, DirectX 12_0 и DirectX 12_1. Начальную версию интерфейса поддерживают все графические чипы AMD и NVIDIA, выпущенные по 28-нанометровому техпроцессу, а также линейка адапетров GeForce 400/500 поколения Fermi. А вот дальше начинаются расхождения. Список поколений 3D-ускорителей занесен в сводную таблицу. Под видеокартами Maxwell 1-го поколения подразумеваются адаптеры GeForce GTX 750/750 Ti.
Поддержка DirectX 12 |
|||
DirectX 12 API |
DirectX 12_0 |
DirectX 12_1 |
|
AMD |
|
|
|
NVIDIA |
|
|
|
DirectX 12 работает только с Windows 10. Маркетинг чистой воды, нацелен на увеличение числа пользователей этой ОС. Можно ли этому противостоять? Можно, но только при продвижении другого API. Например, Vulkan.
DirectX 12 работает только в среде Windows 10.
Список игр, поддерживающих DirectX 12, заметно увеличился. В этом материале мы рассмотрим HITMAN, Rise of the Tomb Raider и Ashes of the Singularity. Эти игры поддерживают и DirectX 11, и DirectX 12. Две из них вышли совсем недавно. Ashes of the Singularity все еще находится на стадии beta-тестирования. Эксклюзивно для Windows 10 вышла ремастеринг-версия культовой Gears of War. Совсем скоро появятся игры ААА-класса: Fable Legends, Deus Ex: Mankind Divided, Forza Motorsport 6 Apex и Quantum Break. Отныне все Xbox-эксклюзивы будут выходить в том числе и на ПК. Но только исключительно под Windows 10. Спасибо новой стратегии Microsoft.
Качество
Как я уже говорил, DirectX 12 разработан для более качественной оптимизации под современное железо. Технологии Tiled Resources, Typed UAV и Bind, входящие в состав этого API, существенно (на бумаге) экономят ресурс видеопамяти и ориентируют API на использование большего числа ядер центрального процессора. Принцип консервативной растеризации ускоряет расчет теней и фильтра MSAA. Логично, что оптимизация приведет и к улучшению качества графики, но самое главное — это все же увеличение стабильности и быстродействия.
Давайте сравним графику DirectX 11 и DirectX 12 в HITMAN и Rise of the Tomb Raider. Ниже прикреплено несколько скриншотов в разрешении Ultra HD (осторожно, каждый файл весит 8–10 Мбайт!). Настройки качества — максимальные.
DirectX 12 — это не про качество.
Игра про «Агента 47» сразу же получила поддержку DirectX 12. Клиент включает встроенный бенчмарк. Он заметно облегчает процесс тестирования, но некоторые коллеги отмечают, что в игре есть локации, которые сильнее нагружают систему, нежели подготовленный разработчиком скрипт. Rise of the Tomb Raider обзавелась поддержкой нового API при помощи патча. Игра также обзавелась встроенным бенчмарком.
Видите разницу? Я — нет. Понимаю, что по скриншотам тяжело судить о качестве графики, но даже в динамике разницы между DirectX 11 и DirectX 12 я не ощутил. А раз так, то использование нового программного интерфейса должно заметно увеличить производительность системы. Ведь хоть в чем-то должна быть польза от этого API?
Производительность
Тестовый стенд:
- Процессор: Intel Core i7–5960X @3,5 ГГц
- Кулер: Corsair H110i
- Материнская плата: GIGABYTE GA-X99-UD7 WIFI
- Оперативная память: DDR4–2133 4×4 Гбайт
- Видеокарта: AMD Radeon R9 Nano, AMD Radeon R9 290, NVIDIA GeForce GTX 970
- Накопитель: SSD Patriot Blast 480 Гбайт
- Операционная система: Windows 10×64
- Драйверы: AMD Crimson Edition 16.3 Hotfix, NVIDIA 364.51
Для сравнения DirectX 11 и DirectX 12 я взял две популярные видеокарты: GeForce GTX 970 и Radeon R9 290. Игры запускались с разными настройками качества графики:
- Rise of the Tomb Raider — пресеты Medium, High и Very High. Сглаживание SMAA всегда включено.
- HITMAN — пресеты Medium, High и Ultra. Сглаживание SMAA, 16-кратная анизотропная фильтрация и SSAO всегда включены.
- Ashes of the Singularity — пресеты Standard, High и Crazy.
Скриншоты с описанием всех настроек качества графики расположены в одноименной галерее.
Прежде, чем начать анализировать полученные результаты, скажу следующее: DirectX 12 привнес в HITMAN и RotTR большое количество багов. Во время тестирования игры зависали, тестовый стенд пару раз, что называется, «ловил» синий экран смерти. Изучив гневные посты в соответствующих топиках клиента Steam, я понял, что с нестабильной работой игр с новым API столкнулось приличное количество геймеров. Вот это оптимизация! Прямо визитная карточка DirectX 12, если учесть, что обновленная версия Gears of War тоже тормозит и глючит. Мог бы рассказать про мои приключения с защитой Denuvo, но к теме DX11/12 они не имеют никакого отношения.
Начнем со среднего качества графики. Здесь наблюдается самая интересная картина. У GeForce GTX 970 прирост FPS наблюдается в… да ни в какой игре! В RotTR и HITMAN количество кадров только снизилось. А вот Radeon R9 290 показал другие результаты. Приключения Лары Крофт отреагировали на новый API уменьшением FPS. А вот в саге про «Агента 47» и Ashes of the Singularity прирост есть: на 5,9% и 20,7% соответственно. Еще сильнее увеличился минимальный FPS — на 36,7%.
Производительность видеокарт в играх. Средние настройки качества графики
При переходе на пресет качества графики High тенденция для видеокарты NVIDIA не изменилась. Разве что минимальный FPS в «Хитмане» увеличилась на 12,8%. Мелочь, а приятно. С Radeon R9 290 новый API работает эффективнее. Не забываем, что HITMAN — «красная» игра, движок оптимизирован под работу с видеокартами Radeon. Поэтому я не удивлен тому факту, что переход с одного DirectX на другой дается архитектуре GCN легче, а Maxwell — никак. В итоге для «двухсот девяностой» прирост составил 40,5% для минимального FPS и 8% для среднего.
Производительность видеокарт в играх. Высокие настройки качества графики
Впрочем, с увеличением качества графики (читай — нагрузки на видеокарту) эффективность DirectX 12 снизилась даже для Radeon R9 290. В HITMAN минимальный FPS вырос на 35,3%, а среднее количество кадров увеличилось на 9,1%.
Подведем промежуточный итог. Во-первых, я вообще не понимаю, зачем DirectX 12 внедрили в Rise of the Tomb Raider. Качество изображения не улучшилось, FPS упал! Судя по отзывам, не у меня одного. HITMAN в DirectX 12 более-менее работает только с Radeon R9 290. Совпадение? Не думаю. Средний FPS увеличился несильно: на 8–10%. Если честно, от DirectX 12, вокруг которого было столько шума, я ожидал большего. Впрочем, мои ожидания, как сказал один любитель чипсов, — это мои проблемы. В Ashes of the Singularity видно, что с увеличением нагрузки на видеокарту разница между DirectX 11 и DirectX 12 уменьшается. Опять же я говорю о видеокарте AMD. У GeForce GTX 970 все в порядке и в DirectX 11.
Производительность видеокарт в играх. Очень высокие настройки качества графики
Потребление ресурсов
Технологии, используемые в DirectX 12, должны оптимизировать работу центрального процессора, а также рациональнее задействовать ресурсы памяти. В случае с RotTR и HITMAN всего этого нет. Начну с количества ядер процессора. Для этого испытания использовалась более мощная видеокарта Radeon R9 Nano. Rise of the Tomb Raider (использовались максимально высокие настройки качества графики) в режиме DirectX 12 все равно, сколько ядер у твоего CPU.
С HITMAN«ом ситуация еще интереснее. При активации DX12 для чипов AMD на архитектуре GCN 1.2 VSync не отключается. То есть у Radeon R9 Nano/Fury/Fury X, а также адаптеров уровня Radeon R9 380/380X есть ограничение в 60 FPS, у Radeon R9 290/290X/390/390X такой «глюк» не наблюдается. Сама игра умеет работать с несколькими ядрами процессора, но оптимизация под многопоточность реализована и в DirectX 11.
Производительность в играх в зависимости от количества ядер (потоков)
А теперь просто приведу два факта: игры с DirectX 12 потребляют больше оперативной и видеопамяти. Сила низкоуровневой оптимизации в действии! Судя по «прожорливости» Rise of the Tomb Raider, 16 Гбайт ОЗУ официально становится необходимым минимумом для игрового компьютера.
Потребление видеопамяти
Потребление оперативной памяти
В заключение
Что это было? После знакомства с первыми играми, поддерживающими DirectX 12, я остался недоволен увиденным. Понятно, что новый API только набирает обороты, но зачем выпускать заведомо неготовый продукт. Ладно, в HITMAN на видеокартах Radeon есть существенная увеличение минимального количества кадров в секунду. Но в Rise of the Tomb Raider производительность просто уменьшилась, а качество графики, если мне не изменяет зрение, не улучшилось. Попахивает откровенной халтурой.
Игры с DirectX 12 оказались нестабильными. Я не могу назвать их оптимизированными, так как в сравнении с DirectX 11 рассмотренные HITMAN и Rise of the Tomb Raider не стали использовать (во благо) больше потоков процессора, не стали потреблять меньше памяти. Даже наоборот!
Нельзя предъявлять серьезных претензий к DirectX 12, рассмотрев лишь три игры. И все же пока новый API не выглядит средством, облегчающим жизнь геймерам. Пока от DirectX 12 несет маркетингом, заставляющим пользователя менять свою старую видеокарту на новую и переходить на операционную систему Windows 10. А пока подождем первых игр, разработанных специально под DirectX 12.
Полный текст статьи читайте на Ferra.ru