DireсtX12 и Windows 10 – стали ли игры работать быстрее?

Hardware | |

directx12-windows10

Windows 10 с ее новыми радостями (и не совсем радостями) уже несколько недель, как можно испытать на своем компьютере. Само собой, для нас геймеров главная новинка — это API имени DirectX 12. Про обещания программистов за просто так повысить производительность процессоров мы писали еще до релиза ОС; тогда, помнится публике сулили избавление от раскаленных процессоров и прочие плюшки.

Собственно, вот DX12 в его ранних версиях уже стоит на наших компьютерах, AMD и Nvidia пошли танцевать друг с другом и покупателями пиар-танцы и распалять наше воображение разными анонсами, а разработчики взялись за оттачивание нового зрелищного графона. И все это здорово. Другой вопрос, как там у DX12 дела с видеокартами, стоящих в ПК здесь и сейчас?

Nota bene: сейчас будет много текста, если вам интересен короткий ответ, можно начать сразу с выводов внизу страницы.

Конечно, эра DirectX 12 еще только-только началась. И в софте, и в собственно технологии, и в железках. Это значит, что повсеместно фишки DX12 в играх сейчас встретить нельзя — полноценной поддержки новой API пока что нет ни в одной игре. Впрочем, эта небольшая деталь не мешает «железным» гигантам уже сейчас с полной отдачей рубиться на новом поле боя.

Что вообще DirectX 12 за фрукт, где он водится и с чем его едят? DX12 – это API, application programming interface, по русски — интерфейс программирования приложений, набор алгоритмов и протоколов, работающий связующим звеном между приложениями (в смысле, играми) и железом ПК (процессором и видеокартой) и определяющий, как они друг с другом будут работать.

DX12 отвечает практически за все на свете, от звука до 2D-видео. Но для нас геймеров важнее всего сидящая в DX12 штука под названием Direct3D, работающая с трехмерной графикой. В новой версии этого самого Direct3D заключены большие изменения — понижено количество аппаратных абстракций (есть такой термин, потерпите, пожалуйста, чуть-чуть) и перестроена последовательность обработки 3D-графики.

Понижение уровня аппаратных абстракций значит, что теперь игры смогут теснее общаться с конкретными железками, а значит, быстрее и эффективнее использовать их ресурсы. Если раньше приложения общались с видеокартами через своеобразного переводчика, то теперь их научили разговаривать друг с другом на одном и том же языке. А это значит, что быстрее заработать должен каждый первый ПК с Windows 10 на борту, а каждая первая видеокарта должна выдавать больше кадров в секунду, чем раньше. Этой-то фишки DX12 мы больше всего и ждали.

Если совсем строго, то полный спектр возможностей DirectX12 поддерживает только последнее, второе поколение Maxwell GPU (см. GTX 970, 980 и более поздние модели). Но: все важные фишки DX12 должны заработать на любых карточках, начиная от AMD GCN (стартуем от Radeon HD 7000) и Nvidia Kepler (GeForce GTX 600 и дальше). Другими словами, если вы купили свою видеокарту в 2012 году или позже, теоретически с DX12 ваша покупка работать должна.

Кому этот новый подход должен аукнуться, так это разработчикам, которым теперь нужно, в общих чертах, писать более четкий отдельный код для работы с картами AMD и Nvidia вместо того, чтобы перекладывать ответственность за плавную работу с разными видеокартами на API.

Смена же маршрута обработки графики в основном работает на снижение так называемых draw call overhead, оверхэдов по вызовам отрисовки. Увы и ах, опять жаргон. Впрочем, суть процесса понять несложно.

dx12-2

Вызов отрисовки — это запрос от процессора на рендер объекта или другого элемента в 3D-движке. Каждый такой вызов на какое-то время вызывает оверхэд API (заставляет API потреблять лишние ресурсы и время на свою задачу), или нагрузку на CPU. Заложенная в DX12 идея заключается в том, чтобы уменьшить в количествах или вообще убрать эти оверхэды.

Другими словами, с DX12 процессор (почти) перестанет быть лимитирующим фактором для существующих игр и выдаст играм будущим больше доступных ресурсов, которые можно будет направить, например, на работу более умного AI.

Такова, по крайней мере, теория. Вопрос в том, насколько хорошо этот концепт будет реализован на практике, и будут ли у новых карточек от Nvidia или AMD какие-нибудь конкретные преимущества. Отдельно интересно, сможет ли избавление от оверхэдов CPU сделать дешевые процессоры от AMD жизнеспособными вариантами для геймерских ПК, ведь сейчас на этом поле кроме как на Intel никто и не смотрит.

Если честно, ответы на вопросы выше придут только со временем. Но потыкать пальцем в небо и прогнать DX12 через практический бенчмарк мы все-таки можем. Есть такая стратегия Ashes of The Singularity, способная выдать на экране тучу объектов и до смерти загрузить процессор на DX11.

ashes 4

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

Интернет (в лице PC Perspective и Computerbase) поделился вот какими наблюдениями. Стоит сменить DX11 на DX12, и те же графические карты от AMD начинают играть в Ashes of The Singularity на 60-90% быстрее. Неслабый такой скачок, доложу я вам.

GPU от Nvidia, в свою очередь, где-то начинают работать шустрее на 25%, где-то вообще малость сбавляют прежние обороты. Какой-нибудь AMD Radeon R9 390X, ранее заметно отстававший от Nvidia GeForce 980, догнал и даже на пару волосков перегнал конкурента. Чудеса.

Если присмотреться повнимательнее, то можно разглядеть, что такие крутые повороты приходят вместе с высокими разрешениями. Производительность AMD FuryX скакнула вверх на 94% в разрешении 2,560х1,600. При этом, чем бюджетнее продукция, тем хуже скачок. Radeon R7 370 с DX12 выдал скачок «всего» на 15%, что на общем феноменальном фоне даже слегка разочаровывает.

Что же до CPU, то тут приход DX12 подтягивает, например, чип AMD FX 8370 с неиграбельных 20 (и ниже) кадров в секунду до сносных 30+. Примерно так же проявляют себя и дешевые чипы Intel Core i3. С DirectX12 на них можно даже слегка начать играться с настройками детализации. Процессоры от Intel подороже тоже демонстрируют солидные скачки в производительности на решительно любых настройках. А это значит, что покупка топовых CPU с приходом DX12 смысл таки не потеряла.

ashes 2

Но, опять же, сейчас нам приходится судить по одной игре, что не есть сильно объективно. Десять тысяч миллионов юнитов — это, несомненно, интересная перспектива для стратегий в реальном времени, но про то, что с полномасштабным приходом DX12 станет с геймингом в целом, по AotS судить нельзя. Тем более, что студия-разработчик игры — сюрприз – водит дружбу с AMD. Пока компания оперативно налаживает взять с разработчиками первого проекта с полной поддержкой DX12, Nvidia сидит в окопе и откидывается вот такими комментариями:

Мы верим, что в будущем появятся лучшие примеры настоящей производительности DirectX 12, и продолжаем работать с Microsoft над их API Dx12, играми и бенчмарками. Архитектура и драйвера GeForce для DX12 не имеют себе равных, и когда можно будет точно измерить производительность DX12, история с DX11 будет повторена.

То есть, в адекватность бенчмарка имени Ashes of The Singularity Nvidia не верит. Впрочем, не поднимать же ей белый флаг?

Похоже, что AMD с ее работами над технологией Mantle (суть, заменитель DirectX с теми же идеями, что и DX12) с приходом новой API удалось взять первый раунд железного противостояния.

ashes 3

Напоминаем, что DirectX12 – игрушка, идущая только в комплекте с Windows 10. Старшие операционные системы до нее обновиться не могут никак. Равно как и заточенные под старый код игры. То есть, ни одна игра сейчас DX12 толком не поддерживает. Пока новая API полностью вытеснит DX11, пройдет не один год; тем же разработчикам придется еще хорошенько попотеть.

И все-таки, вы посмотрите, какие перспективы открывает перед нами DX12, сколько ограничений новая API может снять в самых разнообразных игровых жанрах! Ваш покорный уверен, несколько лет ожиданий и пиар-войн будут того стоить.

Короткой строкой:

  • DirectX12 – новая API, серьезно снимающая нагрузку на процессор в некоторых элементах. Это значит, что игры должны будут идти значительно быстрее
  • Если ваша видеокарта не старше 2012 года, считайте, что вы более-менее уже на борту. Главное, поставьте Windows 10.
  • AMD обскакала Nvidia на старте «Гонки DX12».
  • Игр с поддержкой DX12 еще нет.

Оригинальный текст – rockpapershotgun.com.

Фёдор XiixTii Суслов xiixtii@progamer.ru

Поделиться

Обсудить