DirectX 12: Новый этап в развитии игр
20 июля 2015
42548
95
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/d9cfa7825c2dd8374f28d908968d3778.png)
С выходом 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
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/04f228a4007db99101e267e765f1296c.jpg)
Низкоуровневый доступ
Если раньше интерфейс DirectX был нацелен на универсальность и не давало разработчикам прямого доступа к низкоуровневым функциям видеокарты, то теперь благодаря новым процедурам вызова, доступ к ним открыт, и даже больше – если разработчики не используют их, драйверы смогут автоматически оптимизировать их использование для решения стандартных задач. Благодаря такому подходу, использование специфичных технологий видеокарт позволит увеличить производительность даже в старых играх, портированных на DX12.
Многопоточная оптимизация
DirectX 12 – первая из всех версий, которая оптимизирована под многопоточность на низком уровне. Игры смогут более равномерно нагружать все доступные ядра CPU, в связи с чем повышается производительность игры в целом. Уменьшается время на обработку основного потока игры, и также позволяет вызывать больше Draw-call. В итоге – на том же железе можно отрисовывать в разы больше объектов без понижения частоты кадров. DX 12 выжмет из вашего ПК весь потенциал!
Оптимизация многопоточности CPU
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/faddac0066301defc1b3a29d81901b89.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/6f8f085fc28e3cffb9d469c86e39ae0a.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/729a6b71afcf7b35802344928fc3c5af.png)
Графики
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/acfa9f2b94dbcf79eb213e966971bf8c.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/742e3105aa02d61fac0a12bb47f4231b.jpg)
![+](http://forums.goha.ru/images/vbgoha/buttons/collapse_thead_collapsed.gif)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/faddac0066301defc1b3a29d81901b89.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/6f8f085fc28e3cffb9d469c86e39ae0a.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/729a6b71afcf7b35802344928fc3c5af.png)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/3b64e161ae5c7743379a2cc18bc5a0f2.png)
Графики
![+](http://forums.goha.ru/images/vbgoha/buttons/collapse_thead_collapsed.gif)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/acfa9f2b94dbcf79eb213e966971bf8c.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/742e3105aa02d61fac0a12bb47f4231b.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/057bd5b291a622b747cc2d9fc06e8041.jpg)
Использование нескольких GPU
Свершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей. Игры будут обращаться не к конкретному GPU за обработкой графики, а ко всему массиву видеокарт, доступных в системе, как к единому GPU.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/c43ec36f4e77b52768e19a62b60de758.jpg)
Подтверждения того, можно ли будет объединить две дискретные видеокарты от AMD или Nvidia, пока нет, но сами компании демонстрируют совместную работу APU+GPU от AMD, или встроенного видео ядра Intel + дискретной карты Nvidia GTX. Возможно, нас ждут кроссбрендовые связки или использование видеокарт разных поколений в одной системе, что положит конец многолетней войне фанбоев AMD и Nvidia.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/f98460b45c134e7e6540849f023bf5c9.png)
Главным достоинством объединения всех GPU в один кластер является возможность обработки каждого отдельного кадра всем массивом, что устраняет проблемы совместимости игр с Multi-GPU, а также позволяет не копировать видеопамять каждого устройства, а использовать ее совместно, то есть теперь объём памяти нескольких видеокарт суммируется!
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/4091757ef189786bbec7575f9dd61d83.jpg)
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/9fe70c657902e83ce7512acdb3310634.jpg)
Использование всего потенциала eSRAM (только Xbox One)
eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Если раньше было специальное API для работы с ней, то сейчас эти процедуры и функции встроены в Dx12, а доступ к ней оптимизирован, и более прост для конечных разработчиков. Поэтому нас ожидает увеличение производительности консоли, а также увеличения качества и быстродействия в будущих играх.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/79f92d8310f0c826b587f0f2d4cd9acd.png)
Обратная совместимость с DirectX 11 видеокартами
Большинство современных видеокарт, которые поддерживают DX 11.1, полностью совместимы с DX 12. Более ранние видеокарты будут поддерживать новое API только частично. Сейчас более 70% видеокарт, которые есть у геймеров, будут иметь полную или частичную поддержку всех нововведений. Полный список видеокарт, совместимых с DX 12, по заявлениям производителей, будет представлен в конце статьи.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/c91ffde3a25daee65e0bfaa6f7409a05.jpg)
DirectX 12 + встроенные и low-end GPU
Все преимущества DirectX 12 будут доступны не только игровым ПК c видеокартами последнего поколения, но и устройствам с бюджетными видеокартами или даже встроенными в процессоры GPU, например, ноутбукам и планшетам. Тесты, произведенные на Surface Pro 3 с процессором Core i5 с встроенным Intel 4400 GPU, показывают прирост производительности свыше 50% в графических приложениях и играх на примере специального бенчмарка, в котором частота кадров увеличилась с 19 FPS до 33 FPS, при использовании нового API.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/70a13d2f7ea1c26b07589cf07aaf5a53.jpg)
4k + DirectX 12
Также нас ждет оптимизация работы с высокими разрешениями, и при переходе на DX12 средний уровень повышения производительности в разрешениях 4k составит 30-40 процентов. Такие числа назвал главный разработчик Project CARS - Ian Bell.
![](https://gallery-pub.goha.ru/gals/taran/2015/07/16/dx12/orig/673986eef39583a7639239470cbbec9d.jpg)
Похожие технологии
До выхода 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% игр, релиз которых состоится в конце этого года, уже заявили о его поддержке. А что будет на самом деле, узнаем в ближайшие месяцы, оставайтесь на связи!