DirectX 12: Новый этап в развитии игр

39993
95

С выходом Windows 10 всем станет доступна новая версия API DirectX, которая сильно изменит производительность в играх в лучшую сторону. В отличие от предыдущих версий, для работы вам не потребуется новая видеокарта, так как почти все выпущенные GPU за последние несколько лет будут иметь поддержку Dx12.

Новая версия интерфейса для игр и мультимедийных приложений, которая будет работать на всех устройствах Microsoft: смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. DX12, давая доступ разработчикам к низкоуровневому программированию и улучшенной многопоточности, позволит улучшить производительность уже имеющегося железа в играх. По данным AMD, использование нового API позволяет увеличить количество обрабатываемых объектов в 16.5 раз по сравнению с DX11 при той же частоте кадров. А встроенная поддержка DX12 в Windows 10 сулит ему невероятную популярность. (c) Windows 10 - Восемь самых важных нововведений для геймера


Про DirectX

Перед тем как детально рассказать про Dx12 и все нововведения, напомню, что же такое DirectX, из каких частей состоит весь пакет этого API.

DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями. (c) Wikipedia

Основной библиотекой, в которой чаще всего происходят изменения и внедрение новых технологий, является Direct3D. С каждым важным апдейтом этой библиотеки весь пакет DirectX получает новый индекс. Самые важные нововведения в Dx12 сделаны именно в ней. Остальные библиотеки тоже обновлены, но никаких новых технологий в них почти нет, хотя Microsoft обещают что-то новое в будущих обновлениях DirectX.

В целом пакет DirectX подразделяется на такие библиотеки:
  • Direct2D - интерфейс вывода двухмерной графики.
  • Direct3D (D3D) - интерфейс вывода трёхмерных примитивов.
  • DirectInput - интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
  • DirectPlay - интерфейс сетевой коммуникации игр.
  • DirectSound - интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic - интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow - интерфейс, используемый для ввода/вывода аудио- и/или видеоданных.

Каждая новая версия DirectX приурочена к определенному важному техническому прорыву. В основном это новые версии шейдерных моделей, которые поддерживаются только определенными поколениями GPU и версиями Windows.

Ключевые особенности версий:
  • DirectX 6.0 — Мультитекстурирование
  • DirectX 7.0 — Аппаратная поддержка преобразований, обрезания и освещения
  • DirectX 8.0 — Шейдерная модель 1.1
  • DirectX 8.1 — Пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
  • DirectX 9.0 — Шейдерная модель 2.0
  • DirectX 9.0b — Пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
  • DirectX 9.0c — Шейдерная модель 3.0
  • DirectX 10 — Шейдерная модель 4.0
  • DirectX 10.1 — Шейдерная модель 4.1
  • DirectX 11 — Шейдерная модель 5.0
  • DirectX 11.1 — Шейдерная модель 5.1
  • DirectX 12 — API низкоуровневого рендеринга, улучшенная многопоточность, поддержка нескольких GPU на уровне API

Особенности и новые технологии в DirectX 12


Низкоуровневый доступ
Если раньше интерфейс DirectX был нацелен на универсальность и не давало разработчикам прямого доступа к низкоуровневым функциям видеокарты, то теперь благодаря новым процедурам вызова, доступ к ним открыт, и даже больше – если разработчики не используют их, драйверы смогут автоматически оптимизировать их использование для решения стандартных задач. Благодаря такому подходу, использование специфичных технологий видеокарт позволит увеличить производительность даже в старых играх, портированных на DX12.


Многопоточная оптимизация
DirectX 12 – первая из всех версий, которая оптимизирована под многопоточность на низком уровне. Игры смогут более равномерно нагружать все доступные ядра CPU, в связи с чем повышается производительность игры в целом. Уменьшается время на обработку основного потока игры, и также позволяет вызывать больше Draw-call. В итоге – на том же железе можно отрисовывать в разы больше объектов без понижения частоты кадров. DX 12 выжмет из вашего ПК весь потенциал!

Оптимизация многопоточности CPU  +







Графики  +







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


Подтверждения того, можно ли будет объединить две дискретные видеокарты от AMD или Nvidia, пока нет, но сами компании демонстрируют совместную работу APU+GPU от AMD, или встроенного видео ядра Intel + дискретной карты Nvidia GTX. Возможно, нас ждут кроссбрендовые связки или использование видеокарт разных поколений в одной системе, что положит конец многолетней войне фанбоев AMD и Nvidia.


Главным достоинством объединения всех GPU в один кластер является возможность обработки каждого отдельного кадра всем массивом, что устраняет проблемы совместимости игр с Multi-GPU, а также позволяет не копировать видеопамять каждого устройства, а использовать ее совместно, то есть теперь объём памяти нескольких видеокарт суммируется!



Использование всего потенциала eSRAM (только Xbox One)
eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Если раньше было специальное API для работы с ней, то сейчас эти процедуры и функции встроены в Dx12, а доступ к ней оптимизирован, и более прост для конечных разработчиков. Поэтому нас ожидает увеличение производительности консоли, а также увеличения качества и быстродействия в будущих играх.


Обратная совместимость с DirectX 11 видеокартами
Большинство современных видеокарт, которые поддерживают DX 11.1, полностью совместимы с DX 12. Более ранние видеокарты будут поддерживать новое API только частично. Сейчас более 70% видеокарт, которые есть у геймеров, будут иметь полную или частичную поддержку всех нововведений. Полный список видеокарт, совместимых с DX 12, по заявлениям производителей, будет представлен в конце статьи.


DirectX 12 + встроенные и low-end GPU
Все преимущества DirectX 12 будут доступны не только игровым ПК c видеокартами последнего поколения, но и устройствам с бюджетными видеокартами или даже встроенными в процессоры GPU, например, ноутбукам и планшетам. Тесты, произведенные на Surface Pro 3 с процессором Core i5 с встроенным Intel 4400 GPU, показывают прирост производительности свыше 50% в графических приложениях и играх на примере специального бенчмарка, в котором частота кадров увеличилась с 19 FPS до 33 FPS, при использовании нового API.


4k + DirectX 12
Также нас ждет оптимизация работы с высокими разрешениями, и при переходе на DX12 средний уровень повышения производительности в разрешениях 4k составит 30-40 процентов. Такие числа назвал главный разработчик Project CARS - Ian Bell.


Похожие технологии

До выхода Dx12 некоторые компании представили свои API, схожие по функционалу, но ориентированные на конкретные GPU определенного производителя или на другие графические библиотеки, такие как OpenGL.

Mantle — спецификация низкоуровневого API, разработанная компанией AMD в качестве альтернативы DirectX и OpenGL. В настоящее время поддерживается лишь графическими процессорами AMD архитектуры GCN, хотя есть вероятность, что другие производители GPU могли бы реализовать её в будущем, но в связи с выходом Dx12, который поддерживается всеми производителями GPU на рынке, вероятность этого крайне мала. Ну а последним гвоздем в гроб может стать то, что, судя по тестам проведенным самой AMD, Dx12 работает быстрее их собственной технологии на их же видеокартах.

Vulkan API - изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания Khronos Group отказалась от этих наименований в пользу названия Vulkan. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D графикой, такие как игры или интерактивные книги, на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12 и Mantle. Vulkan основан на технологиях AMD в Mantle. Как и в прошлом OpenGL, в будущем Vulkan станет единственной достойной альтернативой DirectX и будет поддерживаться Open Source объединениями и такими гигантами игростроя, как Valve.

Список видеокарт с поддержкой DirectX 12 в настоящее время
  • AMD Radeon™ R9 Series graphics
  • AMD Radeon™ R7 Series graphics
  • AMD Radeon™ R5 240 graphics
  • AMD Radeon™ HD 8000 Series graphics for OEM systems (HD 8570 and up)
  • AMD Radeon™ HD 8000M Series graphics for notebooks
  • AMD Radeon™ HD 7000 Series graphics (HD 7730 and up)
  • AMD Radeon™ HD 7000M Series graphics for notebooks (HD 7730M and up)
  • AMD A4/A6/A8/A10-7000 Series APUs (codenamed “Kaveri”)
  • AMD A6/A8/A10 PRO-7000 Series APUs (codenamed “Kaveri”)
  • AMD E1/A4/A10 Micro-6000 Series APUs (codenamed “Mullins”)
  • AMD E1/E2/A4/A6/A8-6000 Series APUs (codenamed “Beema”)
  • Nvidia Fermi (GTX 400, GTX 500)
  • Nvidia Kepler (GTX 600, GTX 700)
  • Nvidia Maxwell (GTX 700, GTX 900)
  • Intel Haswell (HD 5000, 4600, 4400 and 4200; Iris 5200 and 5100)
  • Intel Broadwell (HD 6000, 5600, 5500 and 5300; Iris 6200 and 6100)

Вместо заключения. Выводы

Если Microsoft и производители GPU выполнят свои обещания и не будут блокировать кросс-вендорные связки, как сейчас происходит с PhysX и Mantle, нас ждет технический прорыв. Спустя столько лет и разочарований вроде ПК версии Batman Arkham Knight, разработчики API и игр взялись за оптимизацию кода под имеющееся железо. Что еще нужно геймеру? Конечно, больше FPS бесплатно! Следующие поколения видеокарт будут оптимизированы еще больше под DX12 и будут иметь больше мегагерц и гигабайт, поддержку новых технологий, но играть комфортно в новые игры можно будет уже совсем скоро. Многие скажут, что игр под новый DirectX еще нет и не будет, и они будут почти правы. Но множество хитовых тайтлов этого года получат обновления для поддержки нового API после выхода Windows 10. А 90% игр, релиз которых состоится в конце этого года, уже заявили о его поддержке. А что будет на самом деле, узнаем в ближайшие месяцы, оставайтесь на связи!