Vulkan

(перенаправлено с «Vulkan (API)»)

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

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

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

ОбзорПравить

Целью 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[10][11].

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

ИсторияПравить

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование VulkanПравить

ИгрыПравить

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

Игровые движкиПравить

  • 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[42]
  • Turbo Engine (Leadwerks 5.0) - платный движок, от Leadwerks Technologies.

Библиотеки обёрткиПравить

СовместимостьПравить

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

См. такжеПравить

ПримечанияПравить

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

ЛитератураПравить