Это не официальный сайт wikipedia.org 01.01.2023

Vulkan — Википедия

Vulkan

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

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

Vulkan
Логотип программы Vulkan
Скриншот программы Vulkan
Тип API
Автор Khronos Group
Разработчик Khronos Group
Написана на C
Операционная система
Первый выпуск 16 февраля 2016 г.
Аппаратная платформа кроссплатформенность
Последняя версия 1.3.240 (26 января 2023)
Состояние Актуальное
Лицензия Лицензия Apache
Сайт vulkan.org​ (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22 января 2022 года выпущена публичная спецификация версии Vulkan 1.3[37].

1 сентября 2022 выпущено расширение VK_EXT_mesh_shader[38] для поддержки меш шейдеров [39].

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

ИгрыПравить

  • The Talos Principle — первая игра от хорватской компании Croteam, использующая данную технологию на практике.[40]
  • Dota 2 — 23 марта 2016 года была добавлена экспериментальная поддержка Vulkan и попала в релиз в мае 2016.[41]
  • Doom — 11 июля 2016 года Id Software выпустили патч для игры Doom (2016), в котором отрисовка графики и расчёт физических взаимодействий были переделаны с OpenGL на Vulkan.[42][43][44]
  • Doom Eternal — изначально использует API Vulkan.
  • Rage 2 — изначально использует API Vulkan.
  • vkQuake — порт игры Quake на Vulkan выпущен в июле 2016.[45][46]
    • Официальне переиздание Quake, вышедшее 19 августа 2021 года, использует Vulkan по умолчанию.
  • Need for Speed: No Limits, Vainglory и Heroes of Incredible Tales — в июне 2016 года Samsung объявила о поддержке портирования игр с OpenGL ES на Vulkan для смартфона Samsung Galaxy S7.[47]
  • Mad Max (игра, 2015) — 30 марта 2017 года в бета-тест вышла версия игры для Linux, использующая Vulkan.
  • Olympus Rising — Поддержка добавлена 20 августа 2016.
  • Rust — Поддержка добавлена 13 января 2017.
  • Destinations — Поддержка добавлена 22 февраля 2017.
  • Wolfenstein II: The New Colossus — Поддержка добавлена 27 октября 2017.[48]
  • Побег из Таркова — объявлено добавление поддержки в будущем. [49]
  • X4 Foundations — объявлена поддержка Vulkan.[50]
  • Star Citizen — объявлена поддержка Vulkan.[51]
  • No Man's Sky — поддержка добавлена в патче 1.77.
  • World War Z — изначально использует API Vulkan.
  • Red Dead Redemption 2 — изначально использует API Vulkan. Игра поддерживает два API — Vulkan и DirectX 12, но согласно отзывам игроков и обзорам, производительность при использовании Vulkan выше[52].
  • 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.[53]
  • Baldur's Gate III — изначально использует API Vulkan. Игра поддерживает два API — Vulkan и DirectX 11.
  • War Thunder — поддержка Vulkan была дополнительной к OpenGL, в настоящее время Vulkan по умолчанию используется как минимум в версии клиента для Linux.
  • PUBG: New State — мобильная игра с поддержкой графического интерфейса Vulkan и OpenGL ES при выходе (04.11.2021)
  • Brawl Stars - Мобильная кроссплатформенная игра. Поддержка была добавлена 16 Декабря 2021 года. Ранее игра поддерживала OpenGL.

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

  • 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.
  • Unreal Engine 5 — Поскольку движок - продолжение 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 — В июле 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.[54]
  • Turbo Engine (Leadwerks 5.0) - платный движок, от Leadwerks Technologies.

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

  • Anvil – сокращает время на написание рабочего приложения Vulkan с нуля. Часть проекта GPUOpen[en][55].
  • GLOVE – «OpenGL ES Over Vulkan», действует как промежуточный слой между OpenGL ES и Vulkan[56].
  • MoltenVK – позволяет приложениям Vulkan работать поверх Metal[en] в операционных системах macOS и iOS от Apple[57].
  • V-EZ – «Лёгкий режим» для Vulkan, предназначен для упрощения сложности использования Vulkan. Часть проекта GPUOpen[58].
  • Vulkan-Hpp - обёртка для языка программирования C++[59].
  • Vulkano – обёртка для языка программирования Rust[60].
  • PasVulkan – обёртка для языка программирования Object Pascal[61].
  • NVK – Vulkan API для Node.js, позволяет писать приложений на языках программирования JavaScript и TypeScript[62].
  • DXVK - обертка для использования DirectX 9-11 игр и приложений под Vulkan без необходимости их переписывать
  • nGlide - обертка для использования Glide игр и приложений под Vulkan без необходимости их переписывать.
  • D9VK - обертка для использования DirectX 9 игр и приложений под Vulkan без необходимости их переписывать.
  • D8VK - обертка для использования DirectX 8 игр и приложений под Vulkan без необходимости их переписывать.

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

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

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

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

  1. Vulkan on FreeBSD  (неопр.). Vulkan GPU info (1 июня 2021). Дата обращения: 22 мая 2022. Архивировано 14 марта 2022 года.
  2. Vulkan on QNX  (неопр.). www.khronos.org (14 июля 2021). Дата обращения: 14 июля 2021. Архивировано 14 июля 2021 года.
  3. Nintendo Switch Listed as Vulkan and OpenGL Conformant - My Nintendo News  (неопр.). My Nintendo News. Excite Global Media (19 декабря 2016). Дата обращения: 14 июля 2021. Архивировано 14 июля 2021 года.
  4. Palumbo, Alessio Nintendo Switch Officially Supports Vulkan, OpenGL 4.5 & OpenGL ES  (неопр.). WCCF Tech (19 декабря 2016). Дата обращения: 14 июля 2021. Архивировано 14 июля 2021 года.
  5. Conformant Products  (неопр.). khronos.org. The Khronos Group (28 апреля 2018). Дата обращения: 28 февраля 2018. Архивировано 28 января 2017 года.
  6. Vulkan on Raspberry Pi  (неопр.). www.raspberrypi.org (14 июля 2021). Дата обращения: 14 июля 2021. Архивировано 20 июля 2021 года.
  7. Vulkan now official, with 1.0 API release and AMD driver [Updated]  (неопр.). Ars Technica. Condé Nast (16 февраля 2016). Дата обращения: 18 февраля 2016. Архивировано 14 июля 2021 года.
  8. Valich, Theo Mantle Cycle is Complete as Khronos Releases Vulkan 1.0  (неопр.). VR World (17 февраля 2016). Дата обращения: 19 февраля 2016. Архивировано 11 мая 2022 года.
  9. GitHub - KhronosGroup/MoltenVK: MoltenVK is an implementation of the high-performance, industry-standard Vulkan graphics and compute API, that runs on Apple's Metal graphics framework, bringing Vulkan to iOS and macOS.  (неопр.) Дата обращения: 12 сентября 2019. Архивировано 19 июля 2021 года.
  10. VxWorks offers support for many standard graphic libraries, such as ..., and Vulkan  (неопр.). WinDriver. Дата обращения: 8 ноября 2021. Архивировано 8 ноября 2021 года.
  11. Vulkan : Graphics and compute Belong Together  (неопр.) (PDF). Khronos.org (март 2015). Дата обращения: 5 марта 2015. Архивировано 18 декабря 2016 года.
  12. Vulkan - Graphics and compute belong together  (неопр.). Khronos.org. Дата обращения: 5 марта 2015. Архивировано 9 мая 2021 года.
  13. glNext revealed as Vulkan graphics API  (неопр.). Дата обращения: 27 марта 2015. Архивировано 14 октября 2016 года.
  14. Mantle is a Vulkan: AMD’s dead graphics API rises from the ashes in OpenGL’s successor | PCWorld  (неопр.). Дата обращения: 27 марта 2015. Архивировано 7 ноября 2016 года.
  15. AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs  (неопр.). Community.amd.com. Дата обращения: 5 марта 2015. Архивировано из оригинала 6 марта 2015 года.
  16. Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts  (неопр.). ExtremeTech. Дата обращения: 5 марта 2015. Архивировано 22 апреля 2016 года.
  17. AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL  (неопр.). Wccftech.com (20 июня 2014). Дата обращения: 5 марта 2015. Архивировано 19 августа 2020 года.
  18. Kirsch, Nathan Is AMD Mantle Dead As We Have Known It? Vulkan API Uses Mantle Technology for OpenGL  (неопр.). Legit Reviews. Дата обращения: 5 марта 2015. Архивировано 26 июня 2015 года.
  19. Программный интерфейс Vulkan™ | AMD  (неопр.). Дата обращения: 24 ноября 2019. Архивировано 14 июля 2019 года.
  20. Vulkan API официально поддерживает multi-GPU на Windows 10, Windows 7, Windows 8.1 и Linux  (рус.). PlayGround.ru. Дата обращения: 24 ноября 2019.
  21. AMD открыла исходный код V-EZ, оболочки кроссплатформенного низкоуровневого Vulkan API  (неопр.). Дата обращения: 28 августа 2018. Архивировано 28 августа 2018 года.
  22. GitHub - GPUOpen-LibrariesAndSDKs/V-EZ  (неопр.). Дата обращения: 28 августа 2018. Архивировано 29 августа 2018 года.
  23. Trademark Status & Document Retrieval  (неопр.). tsdr.uspto.gov. Дата обращения: 9 ноября 2015. Архивировано 11 мая 2013 года.
  24. glNext revealed as Vulkan graphics API  (неопр.). www.develop-online.net. Дата обращения: 9 ноября 2015. Архивировано 14 октября 2016 года.
  25. Valve announces Source 2 engine, free for developers  (неопр.). Polygon. Дата обращения: 9 ноября 2015. Архивировано 5 марта 2015 года.
  26. GDC 2015: Valve Announces Source 2 Engine - IGN  (неопр.). IGN. Дата обращения: 9 ноября 2015. Архивировано 4 марта 2015 года.
  27. Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix  (неопр.). www.phoronix.com. Дата обращения: 9 ноября 2015. Архивировано 24 сентября 2015 года.
  28. Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix  (неопр.). www.phoronix.com. Дата обращения: 9 ноября 2015. Архивировано 24 сентября 2015 года.
  29. Evan Odabashian on Twitter  (неопр.). Twitter. Дата обращения: 9 ноября 2015. Архивировано 19 августа 2020 года.
  30. Reto Meier. Low-overhead rendering with Vulkan | Android Developers Blog  (неопр.). Low-overhead rendering with Vulkan | Android Developers Blog (10 августа 2015). Дата обращения: 9 ноября 2015. Архивировано 8 марта 2016 года.
  31. Khronos Vulkan Registry  (неопр.). www.khronos.org. Дата обращения: 9 марта 2018. Архивировано 10 марта 2018 года.
  32. Vulkan Applications Enabled on Apple Platforms  (неопр.). www.khronos.org. Дата обращения: 28 февраля 2018. Архивировано 28 февраля 2018 года.
  33. Khronos Group Releases Vulkan 1.1  (неопр.). www.khronos.org. Дата обращения: 9 марта 2018. Архивировано 14 апреля 2022 года.
  34. Khronos Group Releases Vulkan 1.2  (неопр.). www.khronos.org. Дата обращения: 15 января 2020. Архивировано 11 мая 2022 года.
  35. HLSL as a First Class Vulkan Shading Language  (неопр.). www.khronos.org. Дата обращения: 15 января 2020. Архивировано 15 января 2020 года.
  36. Khronos Group Releases Vulkan Ray Tracing  (неопр.). www.khronos.org. Дата обращения: 17 марта 2020. Архивировано 17 марта 2020 года.
  37. Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles  (неопр.). www.khronos.org. Дата обращения: 25 января 2022. Архивировано 25 января 2022 года.
  38. VK_EXT_mesh_shader  (неопр.).
  39. Mesh Shading for Vulkan  (неопр.).
  40. Quick Look: Vulkan Performance on The Talos Principle, Anandtech (17 февраля 2016). Архивировано 15 мая 2022 года. Дата обращения: 19 февраля 2016.
  41. Dota 2 Update - May 23rd 2016  (неопр.). store.steampowered.com. Valve. Дата обращения: 24 мая 2016. Архивировано 8 ноября 2020 года.
  42. Vulkan Support Now Live - FAQ (англ.) (11 July 2016). Архивировано 17 июня 2017 года. Дата обращения: 1 апреля 2017.
  43. DOOM стала первой игрой-блокбастером с поддержкой Vulkan API (рус.), OSZone (11 июля 2016). Архивировано 14 июля 2016 года. Дата обращения: 11 июля 2016.
  44. DOOM – Vulkan Support Now Live  (неопр.). bethesda.net. Дата обращения: 11 июля 2016. Архивировано 6 августа 2019 года.
  45. Papadopoulos, John 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. Архивировано 12 апреля 2022 года.
  46. Larabel, Michael Quake 1 Ported To Run On Vulkan  (неопр.). Phoronix. Phoronix Media (25 июля 2016). Дата обращения: 26 августа 2016. Архивировано 11 мая 2022 года.
  47. See How Vulkan API and Galaxy S7 Create More Immersive Gaming Experiences (англ.), 2016-06-28. Архивировано 24 февраля 2017 года. Дата обращения: 1 апреля 2017.
  48. Твит Tiago Sousa 12.06.2017  (неопр.). Дата обращения: 19 июня 2017. Архивировано 30 мая 2019 года.
  49. Forum: Vulkan API Support?  (неопр.) Дата обращения: 19 июня 2017. Архивировано 22 июля 2017 года.
  50. X4 Foundations: neue 3D-Engine auf Basis von Vulkan wegen VR (нем.), PC Games Hardware. Архивировано 14 ноября 2017 года. Дата обращения: 14 ноября 2017.
  51. forums.robertsspaceindustries.com  (неопр.). Архивировано из оригинала 1 мая 2017 года.
  52. Red Dead Redemption 2. Сравнительное тестирование видеокарт  (рус.). Overclockers.ua. Дата обращения: 24 ноября 2019. Архивировано 19 декабря 2019 года.
  53. Обновление 3.10.2 с бета-версией отрисовщика на базе Vulkan (рус.), Path of Exile (28 мая 2020). Дата обращения: 28 мая 2020.
  54. Godot Engine. Godot Engine - Godot 3.1 is out, improving usability and features  (неопр.). godotengine.org. Дата обращения: 17 марта 2019. Архивировано 18 марта 2019 года.
  55. Проект Anvil на сайте GitHub
  56. Проект GLOVE на сайте GitHub
  57. Проект MoltenVK на сайте GitHub
  58. Проект V-EZ на сайте GitHub
  59. KhronosGroup/Vulkan-Hpp. — 2020-12-07. Архивировано 15 декабря 2020 года.
  60. Проект Vulkano на сайте GitHub
  61. Проект PasVulkan на сайте GitHub
  62. Проект NVK на сайте GitHub
  63. Vulkan Overview  (неопр.). The Khronos Group. Дата обращения: 5 июля 2016. Архивировано 8 декабря 2015 года.

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