Vulkan

Vulkan
Vulkan.svg
Тип API
Автор Khronos Group
Разработчик Khronos Group
Написана на C
Операционная система Linux, Android, Microsoft Windows, Fuchsia, BSD Unix, QNX, MacOS, IOS, Nintendo Switch, Raspberry Pi, Tizen и Stadia
Первый выпуск 16 февраля 2016 г.
Аппаратная платформа кроссплатформенность
Последняя версия 1.2 (15 января 2020)
Состояние Актуальное
Лицензия Пользовательское соглашение
Сайт khronos.org/vulkan/

Vulkan (рус. Вулкан) — кроссплатформенный API для 2D- и 3D-графики, впервые представленный Khronos Group в рамках конференции GDC 2015[1][2].

Vulkan API изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания отказалась от этих названий в пользу названия Vulkan[3]. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D-графикой, такие как игры или интерактивные книги на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12, Metal[en] и Mantle. Vulkan основан на технологиях AMD в Mantle[4][5][6][7][8].


Обзор[ | ]

Целью Vulkan было превзойти другие API, включая его предшественника OpenGL, в части снижения накладных расходов, повышения степени прямого контроля над GPU и уменьшения нагрузки на CPU. Vulkan имеет предполагаемые преимущества:

  • OpenGL использует язык высокого уровня для написания шейдеров GLSL. Это вынуждает каждого производителя OpenGL-драйвера реализовывать свой собственный компилятор для GLSL, который работает во время выполнения графического приложения, компилируя шейдерные программы в исполняемый целевой платформы. Vulkan вместо этого предлагает промежуточный двоичный формат SPIR-V[en], аналогичный двоичному формату, в который компилируются HLSL-шейдеры на платформе Direct3D. Это снимает бремя с поставщиков драйверов, позволяя компилировать шейдеры на этапе разработки. Также позволяет разработчикам приложений писать шейдеры на других языках, кроме GLSL.
  • Кроссплатформенный API поддерживается на мобильных устройствах и высокопроизводительных видеокартах.
  • Улучшенная поддержка современных систем, использующих многопоточность.
  • Снижение нагрузки на центральный процессор в ситуациях, когда он является недостаточно производительным, что позволяет достичь более высокой пропускной способности для GPU-вычислений и визуализации.
  • Серьёзным преимуществом Vulkan перед Direct3D 12 является возможность запускать современные 3D-игры не только в среде Windows 10, но и на компьютерах под управлением ОС Windows 7 и Windows 8.1[9][10].

Для упрощения разработки приложений на Vulkan в 2018 году AMD выпустила вспомогательную оболочку V-EZ, которая берёт на себя многие вспомогательные функции при разработке, так что разработчику необязательно сразу разбираться со всеми тонкостями работы Vulkan API[11][12].

История[ | ]

Летом 2014 года Khronos Group начала проект по созданию следующего поколения графического API. В 2014 году на SIGGRAPH проект был публично анонсирован с призывом к участию.

Согласно ведомству США по патентам и товарным знакам, фирменный знак «Vulkan» был зарегистрирован 19 февраля 2015 года[13].

Vulkan был официально назван и анонсирован на Game Developers Conference 2015, хотя домыслы и слухи вокруг нового API существовали заранее. Один из вариантов названий был «glNext»[14].

3 марта 2015 года Valve анонсировала Source 2, игровой движок с поддержкой графического API Vulkan[15][16].

В начале 2015 года LunarG (финансируется Valve) разработан и представлен драйвер Linux для Intel, который позволил Vulkan иметь совместимость с интегрированной графической системой HD 4000 серии, которая, несмотря на открытый драйвер Mesa, не полностью совместима с OpenGL 4.0[17][18]. Существует ещё возможность[19] поддержки Ivy Bridge, так как он поддерживает Direct3D 11.

10 августа 2015 года Google объявила о будущей версии Android с поддержкой Vulkan[20].

18 декабря 2015 года Khronos Group объявила о том, что спецификация версии Vulkan 1.0 практически завершена и будет выпущена, когда будут доступны совместимые драйверы.

16 февраля 2016 года выпущена публичная спецификация версии Vulkan 1.0[21] и экспериментальные драйверы для видеокарт AMD и Nvidia.

26 февраля 2018 года Khronos в рамках спецификации The Vulkan® Portability Initiative выпустили общедоступную версию Vulkan 1.0 SDK для работы на платформах MacOS и iOS[22].

7 марта 2018 года выпущена публичная спецификация версии Vulkan 1.1[23].

15 января 2020 года выпущена публичная спецификация версии Vulkan 1.2[24].

15 января 2020 года Khronos Group объявила что HLSL-компилятор от Microsoft теперь поддерживает трансляцию в SPIR-V[en]. Теперь HLSL наряду с GLSL официально является языком программирования шейдеров для Vulkan[25].

17 марта 2020 года была добавлена поддержка трассировки лучей[26].

Использование Vulkan[ | ]

Игры[ | ]

  • The Talos Principle — первая игра от хорватской компании Croteam, использующая данную технологию на практике.[27]
  • Dota 2 — 23 марта 2016 года была добавлена экспериментальная поддержка Vulkan и попала в релиз в мае 2016.[28]
  • Doom — 11 июля 2016 года Id Software выпустили патч для игры Doom (2016), в котором отрисовка графики и расчёт физических взаимодействий были переделаны с OpenGL на Vulkan.[29][30][31]
  • Doom Eternal — изначально использует API Vulkan.
  • vkQuake — порт игры Quake на Vulkan выпущен в июле 2016.[32][33]
  • Need for Speed: No Limits, Vainglory и Heroes of Incredible Tales — в июне 2016 года Samsung объявила о поддержке портирования игр с OpenGL ES на Vulkan для смартфона Samsung Galaxy S7.[34]
  • Mad Max (игра, 2015) — 30 марта 2017 года в бета-тест вышла версия игры для Linux, использующая Vulkan.
  • Olympus Rising — Поддержка добавлена 20 августа 2016.
  • Rust — Поддержка добавлена 13 января 2017.
  • Destinations — Поддержка добавлена 22 февраля 2017.
  • Wolfenstein II: The New Colossus — Поддержка добавлена 27 октября 2017.[35]
  • Побег из Таркова — объявлено добавление поддержки в будущем. [36]
  • X4 Foundations — объявлена поддержка Vulkan.[37]
  • Star Citizen — объявлена поддержка Vulkan.[38]
  • No Man's Sky — поддержка добавлена в патче 1.77.
  • World War Z — изначально использует API Vulkan.
  • Red Dead Redemption 2 — изначально использует API Vulkan. Игра поддерживает два API — Vulkan и DirectX 12, но согласно отзывам игроков и обзорам, производительность при использовании Vulkan выше[39].
  • Detroit: Become Human изначально использует API Vulkan.
  • Tom Clancy’s Rainbow Six Siege и Tom Clancy’s Ghost Recon Breakpoint 28 января 2020 года была добавлена экспериментальная поддержка API Vulkan
  • X-Plane 11 — 3 апреля 2020 года, студия-разработчик игры-авиасимулятора выпустила обновление 11.50, которое включает в себя API Vulkan.
  • Path of Exile — 28 мая 2020 года было выпущено обновление 3.10.2 с поддержкой бета-версии отрисовщика на базе Vulkan.[40]
  • Baldur's Gate III — изначально использует API Vulkan. Игра поддерживает два API — Vulkan и DirectX 11.

Игровые движки[ | ]

  • Source 2 — В марте 2015, Valve Corporation анонсировала Source 2, который получил поддержку Vulkan.
  • Serious Engine 4 — В феврале 2016, Croteam объявила о поддержке Vulkan в Serious Engine.
  • Unreal Engine 4 — В феврале 2016, Epic Games анонсировала Unreal Engine 4 с поддержкой Vulkan.
  • Torque 3D[en] — В апреле 2016, разработчики объявили что добавили поддержку Vulkan.
  • Quake Engine — В июне 2016 была добавлена поддержка Vulkan.
  • id Tech 3 — В мае 2017 была добавлена поддержка Vulkan.
  • id Tech 4 — В августе 2017 была добавлена поддержка Vulkan.
  • id Tech 6 — В мае 2016 id Software объявили что Doom на движке id Tech 6 будет поддерживать Vulkan.
  • id Tech 7 — В июне 2018 id Software анонсировали движок id Tech 7 который работает исключительно на Vulkan.
  • Xenko[en] — В июле 2016, была добавлена поддержка Vulkan.
  • Unity — Поддержка Vulkan появилась в версии 5.6.
  • CryEngine — Поддержка Vulkan появилась в версии 5.4.
  • Intrinsic — бесплатный кросс-платформенный игровой движок с открытым исходным ом, который поддерживает Vulkan.
  • Unigine — В апреле 2017, Unigine Corp анонсировала поддержку Vulkan для своего движка Unigine.
  • Abyss Engine — В мае 2017, Deep Silver выпустила Galaxy on Fire 3 Manticore на Android с поддержкой Vulkan.
  • Banshee 3D — бесплатный кросс-платформенный игровой движок с открытым исходным ом, который поддерживает Vulkan.
  • Godot Engine — Планируется в версии 4.0[41]
  • Turbo Engine (Leadwerks 5.0) - платный движок, от Leadwerks Technologies.

Библиотеки обёртки[ | ]

Совместимость[ | ]

Начальная спецификация утверждает, что Vulkan будет работать на оборудовании, которое в настоящее время поддерживает OpenGL ES 3.1 или OpenGL 4.x и выше[50]. В качестве поддержки Vulkan потребует новых графических драйверов, но это не обязательно означает, что все существующие устройства, которые поддерживают OpenGL ES 3.1 или OpenGL 4.X будут иметь доступные драйверы с поддержкой Vulkan.

См. также[ | ]

Примечания[ | ]

  1. Vulkan : Graphics and compute Belong Together (PDF). Khronos.org (март 2015). Дата обращения: 5 марта 2015.
  2. Vulkan - Graphics and compute belong together. Khronos.org. Дата обращения: 5 марта 2015.
  3. glNext revealed as Vulkan graphics API
  4. Mantle is a Vulkan: AMD’s dead graphics API rises from the ashes in OpenGL’s successor | PCWorld
  5. AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs (недоступная ссылка). Community.amd.com. Дата обращения: 5 марта 2015. Архивировано 6 марта 2015 года.
  6. Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts. ExtremeTech. Дата обращения: 5 марта 2015.
  7. AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL. Wccftech.com (20 июня 2014). Дата обращения: 5 марта 2015.
  8. Kirsch, Nathan Is AMD Mantle Dead As We Have Known It? Vulkan API Uses Mantle Technology for OpenGL. Legit Reviews. Дата обращения: 5 марта 2015.
  9. Программный интерфейс Vulkan™ | AMD.
  10. Vulkan API официально поддерживает multi-GPU на Windows 10, Windows 7, Windows 8.1 и Linux. PlayGround.ru. Дата обращения: 24 ноября 2019.
  11. AMD открыла исходный V-EZ, оболочки кроссплатформенного низкоуровневого Vulkan API
  12. GitHub - GPUOpen-LibrariesAndSDKs/V-EZ
  13. Trademark Status & Document Retrieval. tsdr.uspto.gov. Дата обращения: 9 ноября 2015.
  14. glNext revealed as Vulkan graphics API. www.develop-online.net. Дата обращения: 9 ноября 2015.
  15. Valve announces Source 2 engine, free for developers. Polygon. Дата обращения: 9 ноября 2015.
  16. GDC 2015: Valve Announces Source 2 Engine - IGN. IGN. Дата обращения: 9 ноября 2015.
  17. Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix. www.phoronix.com. Дата обращения: 9 ноября 2015.
  18. Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix. www.phoronix.com. Дата обращения: 9 ноября 2015.
  19. Evan Odabashian on Twitter. Twitter. Дата обращения: 9 ноября 2015.
  20. Reto Meier. Low-overhead rendering with Vulkan | Android Developers Blog. Low-overhead rendering with Vulkan | Android Developers Blog (10 августа 2015). Дата обращения: 9 ноября 2015.
  21. Khronos Vulkan Registry. www.khronos.org. Дата обращения: 9 марта 2018.
  22. Vulkan Applications Enabled on Apple Platforms. www.khronos.org. Дата обращения: 28 февраля 2018.
  23. Khronos Group Releases Vulkan 1.1. www.khronos.org. Дата обращения: 9 марта 2018.
  24. Khronos Group Releases Vulkan 1.2. www.khronos.org. Дата обращения: 15 января 2020.
  25. HLSL as a First Class Vulkan Shading Language. www.khronos.org. Дата обращения: 15 января 2020.
  26. Khronos Group Releases Vulkan Ray Tracing. www.khronos.org. Дата обращения: 17 марта 2020.
  27. Quick Look: Vulkan Performance on The Talos Principle, Anandtech (17 февраля 2016). Дата обращения 19 февраля 2016.
  28. Dota 2 Update - May 23rd 2016. store.steampowered.com. Valve. Дата обращения: 24 мая 2016.
  29. Vulkan Support Now Live - FAQ (англ.) (11 July 2016). Дата обращения 1 апреля 2017.
  30. DOOM стала первой игрой-блокбастером с поддержкой Vulkan API (рус.), OSZone (11 июля 2016). Дата обращения 11 июля 2016.
  31. DOOM – Vulkan Support Now Live. bethesda.net. Дата обращения: 11 июля 2016.
  32. Here is your first look at the first Quake being recreated in Unreal Engine 4 (fan project). Dark Side of Gaming (21 июля 2016). Дата обращения: 26 августа 2016.
  33. Quake 1 Ported To Run On Vulkan. Phoronix. Phoronix Media (25 июля 2016). Дата обращения: 26 августа 2016.
  34. See How Vulkan API and Galaxy S7 Create More Immersive Gaming Experiences (англ.), 2016-06-28. Дата обращения 1 апреля 2017.
  35. Твит Tiago Sousa 12.06.2017
  36. Forum: Vulkan API Support?
  37. X4 Foundations: neue 3D-Engine auf Basis von Vulkan wegen VR (нем.), PC Games Hardware. Дата обращения 14 ноября 2017.
  38. forums.robertsspaceindustries.com (недоступная ссылка). Архивировано 1 мая 2017 года.
  39. Red Dead Redemption 2. Сравнительное тестирование видеокарт. Overclockers.ua. Дата обращения: 24 ноября 2019.
  40. Обновление 3.10.2 с бета-версией отрисовщика на базе Vulkan (рус.), Path of Exile (28 мая 2020). Дата обращения 28 мая 2020.
  41. Godot Engine. Godot Engine - Godot 3.1 is out, improving usability and features. godotengine.org. Дата обращения: 17 марта 2019.
  42. Проект Anvil на сайте GitHub
  43. Проект GLOVE на сайте GitHub
  44. Проект MoltenVK на сайте GitHub
  45. Проект V-EZ на сайте GitHub
  46. KhronosGroup/Vulkan-Hpp. — 2020-12-07.
  47. Проект Vulkano на сайте GitHub
  48. Проект PasVulkan на сайте GitHub
  49. Проект NVK на сайте GitHub
  50. Vulkan Overview. The Khronos Group. Дата обращения: 5 июля 2016.

Литература[ | ]