Vulkan

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

Vulkan
Логотип программы Vulkan
Скриншот программы Vulkan
ТипAPI
АвторKhronos Group
РазработчикKhronos Group
Написана наC
Операционные системы
Первый выпуск16 февраля 2016 г.
Аппаратная платформа кроссплатформенность
Последняя версия1.3.282 (14 апреля 2024)
Репозиторийgithub.com/KhronosGroup/…
СостояниеАктуальное
ЛицензияЛицензия Apache
Сайтkhronos.org/vulkan/
Логотип Викисклада Медиафайлы на Викискладе

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]
  • Escape from Tarkov — объявлено добавление поддержки в будущем.[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.
  • Team Fortress 2 — 20 апреля 2024 года была добавлена 64-битная версия игры а также поддержку Vulkan[54]

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

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

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

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

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

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

См. также

Примечания

Литература

  • Селлерс Г. Vulkan. Руководство разработчика = Vulkan. Programming Guide. — ДМК Пресс, 2017. — 394 с. — ISBN 978-5-97060-486-1.
🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации