Vulkan

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Vulkan (API)»)
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 5 октября 2024 года; проверки требуют46 правок.
Перейти к навигацииПерейти к поиску
Vulkan
Логотип программы Vulkan
Скриншот программы Vulkan
ТипAPI
АвторKhronos Group
РазработчикKhronos Group
Написана наC
Операционные системы
Дата выпуска16 февраля 2016
Аппаратная платформакроссплатформенность
Последняя версия1.4.343 (6 февраля 2026)
Репозиторийgithub.com/KhronosGroup/…
СостояниеАктуальное
ЛицензияЛицензия Apache
Сайтvulkan.org
Логотип Викисклада Медиафайлы на Викискладе

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

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

Содержание

Обзор

[править |править код]

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

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

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

История

[править |править код]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[править |править код]

Игры

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

Игровые движки

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

Библиотеки-обёртки

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

Совместимость

[править |править код]

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

Литература

[править |править код]
Перейти к шаблону «Стандарты Khronos Group»
СтандартыThe Khronos Group
Активные
Неактивные
Источник —https://ru.wikipedia.org/w/index.php?title=Vulkan&oldid=151635416
Категории:
Скрытые категории: