Interested Article - Vulkan
- 2021-10-22
- 1
Vulkan ( рус. Вулкан ) — кроссплатформенный API для 2D- и 3D-графики , впервые представленный Khronos Group в рамках конференции GDC 2015 .
Vulkan API изначально был известен как «новое поколение OpenGL » или просто «glNext», но после анонса компания отказалась от этих названий в пользу названия Vulkan . Как и OpenGL , Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D-графикой , такие как игры или интерактивные книги на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор , аналогично Direct3D 12 , и Mantle . Vulkan основан на технологиях AMD в Mantle .
Обзор
Целью Vulkan было превзойти другие API , включая его предшественника OpenGL , в части снижения накладных расходов, повышения степени прямого контроля над GPU и уменьшения нагрузки на CPU . Vulkan имеет предполагаемые преимущества:
- OpenGL использует язык высокого уровня для написания шейдеров GLSL . Это вынуждает каждого производителя OpenGL - драйвера реализовывать свой собственный компилятор для GLSL, который работает во время выполнения графического приложения, компилируя шейдерные программы в исполняемый код целевой платформы. Vulkan вместо этого предлагает промежуточный двоичный формат , аналогичный двоичному формату, в который компилируются HLSL -шейдеры на платформе Direct3D . Это снимает бремя с поставщиков драйверов , позволяя компилировать шейдеры на этапе разработки. Также позволяет разработчикам приложений писать шейдеры на других языках, кроме GLSL.
- Кроссплатформенный API поддерживается на мобильных устройствах и высокопроизводительных видеокартах .
- Улучшенная поддержка современных систем, использующих многопоточность .
- Снижение нагрузки на центральный процессор в ситуациях, когда он является недостаточно производительным, что позволяет достичь более высокой пропускной способности для GPU-вычислений и визуализации.
- Серьёзным преимуществом Vulkan перед Direct3D 12 когда-то была возможность запускать современные 3D-игры не только в среде Windows 10 , но и на компьютерах под управлением ОС Windows 7 и Windows 8.1 .
Для упрощения разработки приложений на Vulkan в 2018 году AMD выпустила вспомогательную оболочку , которая берёт на себя многие вспомогательные функции при разработке, так что разработчику необязательно сразу разбираться со всеми тонкостями работы Vulkan API .
История
Летом 2014 года Khronos Group начала проект по созданию следующего поколения графического API . В 2014 году на SIGGRAPH проект был публично анонсирован с призывом к участию.
Согласно ведомству США по патентам и товарным знакам , фирменный знак «Vulkan» был зарегистрирован 19 февраля 2015 года .
Vulkan был официально назван и анонсирован на Game Developers Conference 2015, хотя домыслы и слухи вокруг нового API существовали заранее. Один из вариантов названий был «glNext» .
3 марта 2015 года Valve анонсировала Source 2 , игровой движок с поддержкой графического API Vulkan .
В начале 2015 года LunarG (финансируется Valve ) разработан и представлен драйвер Linux для Intel , который позволил Vulkan иметь совместимость с интегрированной графической системой HD 4000 серии, которая, несмотря на открытый драйвер Mesa , не полностью совместима с OpenGL 4.0 . Существует ещё возможность поддержки Ivy Bridge , так как он поддерживает Direct3D 11 .
10 августа 2015 года Google объявила о будущей версии Android с поддержкой Vulkan .
18 декабря 2015 года Khronos Group объявила о том, что спецификация версии Vulkan 1.0 практически завершена и будет выпущена, когда будут доступны совместимые драйверы .
16 февраля 2016 года выпущена публичная спецификация версии Vulkan 1.0 и экспериментальные драйверы для видеокарт AMD и Nvidia .
26 февраля 2018 года Khronos в рамках спецификации The Vulkan® Portability Initiative выпустили общедоступную версию Vulkan 1.0 SDK для работы на платформах macOS и iOS .
7 марта 2018 года выпущена публичная спецификация версии Vulkan 1.1 .
15 января 2020 года выпущена публичная спецификация версии Vulkan 1.2 .
15 января 2020 года Khronos Group объявила что HLSL -компилятор от Microsoft теперь поддерживает трансляцию в . Теперь HLSL наряду с GLSL официально является языком программирования шейдеров для Vulkan .
17 марта 2020 года была добавлена поддержка трассировки лучей .
22 января 2022 года выпущена публичная спецификация версии Vulkan 1.3 .
1 сентября 2022 выпущено расширение VK_EXT_mesh_shader для поддержки меш шейдеров .
Использование Vulkan
Игры
- The Talos Principle — первая игра от хорватской компании Croteam , использующая данную технологию на практике.
- Dota 2 — 23 марта 2016 года была добавлена экспериментальная поддержка Vulkan и попала в релиз в мае 2016.
- Doom — 11 июля 2016 года Id Software выпустили патч для игры Doom (2016) , в котором отрисовка графики и расчёт физических взаимодействий были переделаны с OpenGL на Vulkan.
- Doom Eternal — изначально использует API Vulkan.
- Rage 2 — изначально использует API Vulkan.
-
vkQuake
— порт игры
Quake
на Vulkan выпущен в июле 2016.
- Официальне переиздание Quake, вышедшее 19 августа 2021 года, использует Vulkan по умолчанию.
- Need for Speed: No Limits , Vainglory и — в июне 2016 года Samsung объявила о поддержке портирования игр с OpenGL ES на Vulkan для смартфона Samsung Galaxy S7 .
- Mad Max (игра, 2015) — 30 марта 2017 года в бета-тест вышла версия игры для Linux, использующая Vulkan.
- Olympus Rising — Поддержка добавлена 20 августа 2016.
- Rust — Поддержка добавлена 13 января 2017.
- Destinations — Поддержка добавлена 22 февраля 2017.
- Wolfenstein II: The New Colossus — Поддержка добавлена 27 октября 2017.
- Escape from Tarkov — объявлено добавление поддержки в будущем.
- X4 Foundations — объявлена поддержка Vulkan.
- Star Citizen — объявлена поддержка Vulkan.
- No Man's Sky — поддержка добавлена в патче 1.77.
- World War Z — изначально использует API Vulkan.
- Red Dead Redemption 2 — изначально использует API Vulkan. Игра поддерживает два API — Vulkan и DirectX 12, но согласно отзывам игроков и обзорам, производительность при использовании Vulkan выше .
- 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.
- 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: Global Offensive — Добавлена поддержка 11 Декабря 2021 года. DXVK (DirectX-Vulkan)
- 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 изначально.
- — В апреле 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.
- — В июле 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.
- Turbo Engine (Leadwerks 5.0) — платный движок, от Leadwerks Technologies.
Библиотеки обёртки
- Anvil — сокращает время на написание рабочего приложения Vulkan с нуля. Часть проекта .
- GLOVE — «OpenGL ES Over Vulkan», действует как промежуточный слой между OpenGL ES и Vulkan .
- MoltenVK — позволяет приложениям Vulkan работать поверх в операционных системах macOS и iOS от Apple .
- V-EZ — «Лёгкий режим» для Vulkan, предназначен для упрощения сложности использования Vulkan. Часть проекта .
- Vulkan-Hpp — обёртка для языка программирования C++ .
- Vulkano — обёртка для языка программирования Rust .
- PasVulkan — обёртка для языка программирования Object Pascal .
- NVK — Vulkan API для Node.js , позволяет писать приложений на языках программирования JavaScript и TypeScript .
- DXVK — обертка для использования DirectX 9-11 игр и приложений под Vulkan без необходимости их переписывать
- nGlide — обертка для использования Glide игр и приложений под Vulkan без необходимости их переписывать.
- D9VK — обертка для использования DirectX 9 игр и приложений под Vulkan без необходимости их переписывать.
- D8VK — обертка для использования DirectX 8 игр и приложений под Vulkan без необходимости их переписывать.
Совместимость
Начальная спецификация утверждает, что Vulkan будет работать на оборудовании, которое в настоящее время поддерживает OpenGL ES 3.1 или OpenGL 4.x и выше . В качестве поддержки Vulkan потребует новых графических драйверов , но это не обязательно означает, что все существующие устройства, которые поддерживают OpenGL ES 3.1 или OpenGL 4.x будут иметь доступные драйверы с поддержкой Vulkan.
См. также
- OpenGL — другой графический API от Khronos Group .
- OpenCL — другой API для вычислений от Khronos Group .
- Mantle — низкоуровневый графический и вычислительный API от AMD .
- DirectX — набор API для Windows и Xbox .
- — низкоуровневый графический и расчётный API для iOS и macOS .
- — свободный графический драйвер видеокарт AMD для Linux .
- Glide — API для трёхмерной графики , разработанный 3dfx Interactive .
Примечания
- . Vulkan GPU info (1 июня 2021). Дата обращения: 22 мая 2022. 14 марта 2022 года.
- . www.khronos.org (14 июля 2021). Дата обращения: 14 июля 2021. 14 июля 2021 года.
- . My Nintendo News . Excite Global Media (19 декабря 2016). Дата обращения: 14 июля 2021. 14 июля 2021 года.
- Palumbo, Alessio . WCCF Tech (19 декабря 2016). Дата обращения: 14 июля 2021. 14 июля 2021 года.
- . khronos.org . The Khronos Group (28 апреля 2018). Дата обращения: 28 февраля 2018. 28 января 2017 года.
- . www.raspberrypi.org (14 июля 2021). Дата обращения: 14 июля 2021. 20 июля 2021 года.
- . Ars Technica . Condé Nast (16 февраля 2016). Дата обращения: 18 февраля 2016. 14 июля 2021 года.
- Valich, Theo . VR World (17 февраля 2016). Дата обращения: 19 февраля 2016. 11 мая 2022 года.
- Дата обращения: 12 сентября 2019. 19 июля 2021 года.
- . WinDriver . Дата обращения: 8 ноября 2021. 8 ноября 2021 года.
- (PDF). Khronos.org (март 2015). Дата обращения: 5 марта 2015. 18 декабря 2016 года.
- . Khronos.org. Дата обращения: 5 марта 2015. 9 мая 2021 года.
- . Дата обращения: 27 марта 2015. 14 октября 2016 года.
- . Дата обращения: 27 марта 2015. 7 ноября 2016 года.
- . Community.amd.com. Дата обращения: 5 марта 2015. Архивировано из 6 марта 2015 года.
- . ExtremeTech. Дата обращения: 5 марта 2015. 22 апреля 2016 года.
- . Wccftech.com (20 июня 2014). Дата обращения: 5 марта 2015. 19 августа 2020 года.
- Kirsch, Nathan . Legit Reviews. Дата обращения: 5 марта 2015. 26 июня 2015 года.
- . Дата обращения: 24 ноября 2019. 14 июля 2019 года.
- . PlayGround.ru. Дата обращения: 24 ноября 2019.
- . Дата обращения: 28 августа 2018. 28 августа 2018 года.
- . Дата обращения: 28 августа 2018. 29 августа 2018 года.
- . tsdr.uspto.gov. Дата обращения: 9 ноября 2015. 11 мая 2013 года.
- . www.develop-online.net. Дата обращения: 9 ноября 2015. 14 октября 2016 года.
- . Polygon. Дата обращения: 9 ноября 2015. 5 марта 2015 года.
- . IGN. Дата обращения: 9 ноября 2015. 4 марта 2015 года.
- . www.phoronix.com. Дата обращения: 9 ноября 2015. 24 сентября 2015 года.
- . www.phoronix.com. Дата обращения: 9 ноября 2015. 24 сентября 2015 года.
- . Twitter. Дата обращения: 9 ноября 2015. 19 августа 2020 года.
- Reto Meier. . Low-overhead rendering with Vulkan | Android Developers Blog (10 августа 2015). Дата обращения: 9 ноября 2015. 8 марта 2016 года.
- . www.khronos.org. Дата обращения: 9 марта 2018. 10 марта 2018 года.
- . www.khronos.org. Дата обращения: 28 февраля 2018. 28 февраля 2018 года.
- . www.khronos.org. Дата обращения: 9 марта 2018. 14 апреля 2022 года.
- . www.khronos.org. Дата обращения: 15 января 2020. 11 мая 2022 года.
- . www.khronos.org. Дата обращения: 15 января 2020. 15 января 2020 года.
- . www.khronos.org. Дата обращения: 17 марта 2020. 17 марта 2020 года.
- . www.khronos.org. Дата обращения: 25 января 2022. 25 января 2022 года.
- . Дата обращения: 8 сентября 2022. 8 сентября 2022 года.
- . Дата обращения: 8 сентября 2022. 8 сентября 2022 года.
- Williams, Daniel; Smith, Ryan (2016-02-17). . Anandtech. из оригинала 15 мая 2022 . Дата обращения: 19 февраля 2016 .
- . store.steampowered.com . Valve. Дата обращения: 24 мая 2016. 8 ноября 2020 года.
- (англ.) . 2016-07-11. из оригинала 17 июня 2017 . Дата обращения: 1 апреля 2017 .
- . OSZone . 2016-07-11. из оригинала 14 июля 2016 . Дата обращения: 11 июля 2016 .
- . bethesda.net . Дата обращения: 11 июля 2016. 6 августа 2019 года.
- Papadopoulos, John . Dark Side of Gaming (21 июля 2016). Дата обращения: 26 августа 2016. 12 апреля 2022 года.
- Larabel, Michael . Phoronix . Phoronix Media (25 июля 2016). Дата обращения: 26 августа 2016. 11 мая 2022 года.
- (англ.) . 2016-06-28. из оригинала 24 февраля 2017 . Дата обращения: 1 апреля 2017 .
- . Дата обращения: 19 июня 2017. 30 мая 2019 года.
- Дата обращения: 19 июня 2017. 22 июля 2017 года.
- . PC Games Hardware (нем.) . из оригинала 14 ноября 2017 . Дата обращения: 14 ноября 2017 .
- . Архивировано из 1 мая 2017 года.
- . Overclockers.ua. Дата обращения: 24 ноября 2019. 19 декабря 2019 года.
- . Path of Exile . 2020-05-28 . Дата обращения: 28 мая 2020 .
- Godot Engine. . godotengine.org. Дата обращения: 17 марта 2019. 18 марта 2019 года.
- на сайте GitHub
- на сайте GitHub
- на сайте GitHub
- на сайте GitHub
- . — 2020-12-07. 15 декабря 2020 года.
- на сайте GitHub
- на сайте GitHub
- на сайте GitHub
- . The Khronos Group. Дата обращения: 5 июля 2016. 8 декабря 2015 года.
Литература
- Селлерс Г. Vulkan. Руководство разработчика = Vulkan. Programming Guide. — , 2017. — 394 с. — ISBN 978-5-97060-486-1 .
- 2021-10-22
- 1