Vulkan (API)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Вулкан (Vulkan)
Vulkan.svg
Тип

API

Автор

Khronos Group

Разработчик

Khronos Group

Написана на

OpenGL Shading Language

Операционная система

Linux, Android Nougat, ReactOS, Windows

Первый выпуск

16 февраля 2016 г.

Последняя версия
Состояние

Актуальное

Лицензия

Пользовательское соглашение

Сайт

khronos.org/vulkan/

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

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

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

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

  • OpenGL использует язык высокого уровня для написания шейдеров GLSL. Это вынуждает каждого производителя OpenGL драйвера реализовать свой собственный компилятор для GLSL, который работает во время выполнения графического приложения, компилируя шейдерные программы в исполняемый код целевой платформы. Vulkan вместо этого предлагает промежуточный двоичный формат SPIR-V (Standard Portable Intermediate Representation), аналогичный двоичному формату в который компилируются HLSL-шейдеры на платформе DirectX. Это снимает бремя с поставщиков драйверов, позволяя компилировать шейдеры на этапе разработки. Также позволяет разработчикам приложений писать шейдеры на других языках, кроме GLSL.
  • Кроссплатформенный API поддерживается на мобильных устройствах и высокопроизводительных видеокартах.
  • Улучшенная поддержка современных систем, использующих многопоточность.
  • Снижение нагрузки на центральный процессор в ситуациях, когда он является недостаточно производительным, что позволяет достичь более высокой пропускной способности для GPU-вычислений и визуализации.

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

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

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

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

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

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

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

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

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

Использование Vulkan[править | править код]

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

  • The Talos Principle – первая игра от хорватской компании Croteam, использующая данную технологию на практике.[20]
  • Dota 2 – 23 марта 2016 года была добавлена экспериментальная поддержка Vulkan и попала в релиз в мае 2016.[21]
  • Doom – 11 июля 2016 года Id Software выпустили патч для игры Doom (2016), в котором отрисовка графики и расчёт физических взаимодействий были переделаны с OpenGL на Vulkan.[22][23][24]
  • vkQuake – порт игры Quake на Vulkan выпущен в июле 2016.[25][26]
  • Need for Speed: No Limits, Vainglory и Heroes of Incredible Tales - в июне 2016 года Samsung объявила о поддержке портирования игр с OpenGL ES на Vulkan для смартфона Samsung Galaxy S7.[27]
  • Mad Max (игра, 2015) – 30 марта 2017 года в бета-тест вышла версия игры для Linux, использующая Vulkan.
  • Olympus Rising – Поддержка добавлена 20 августа 2016.
  • Rust – Поддержка добавлена 13 января 2017.
  • Destinations – Поддержка добавлена 22 февраля 2017.
  • Wolfenstein II: The New Colossus – Поддержка добавлена 27 октября 2017.[28]
  • Побег из Таркова – объявлена поддержка Vulkan.[29]
  • X4 Foundations - объявлена поддержка Vulkan.[30]
  • Star Citizen - объявлена поддержка Vulkan.[31]

Игровые движки[править | править код]

  • 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 – В апреле 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.
  • Xenko – В июле 2016, была добавлена поддержка Vulkan.
  • Unity – Поддержка Vulkan появилась в версии 5.6.
  • CryEngine – Поддержка Vulkan появилась в версии 5.4.
  • Intrinsic – бесплатный кросс-платформенный игровой движок с открытым исходным кодом, который поддерживает Vulkan.
  • Unigine – В апреле 2017, Unigine Corp анонсировала поддержку Vulkan для своего движка Unigine.
  • Abyss Engine – В мае 2017, Manticore выпустила Galaxy on Fire 3 на Android с поддержкой Vulkan.
  • Banshee 3D – бесплатный кросс-платформенный игровой движок с открытым исходным кодом, который поддерживает Vulkan.

Совместимость[править | править код]

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

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 Vulkan 1.0.66 - A Specification
  2. Vulkan : Graphics and compute Belong Together (PDF). Khronos.org (March 2015). Проверено 5 марта 2015.
  3. Vulkan - Graphics and compute belong together. Khronos.org. Проверено 5 марта 2015.
  4. glNext revealed as Vulkan graphics API
  5. [1]
  6. Mantle is a Vulkan: AMD’s dead graphics API rises from the ashes in OpenGL’s successor | PCWorld
  7. AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs. Community.amd.com. Проверено 5 марта 2015.
  8. Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts. ExtremeTech. Проверено 5 марта 2015.
  9. AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL. Wccftech.com (20 июня 2014). Проверено 5 марта 2015.
  10. Kirsch, Nathan Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL. Legit Reviews. Проверено 5 марта 2015.
  11. Trademark Status & Document Retrieval. tsdr.uspto.gov. Проверено 9 ноября 2015.
  12. glNext revealed as Vulkan graphics API. www.develop-online.net. Проверено 9 ноября 2015.
  13. Valve announces Source 2 engine, free for developers. Polygon. Проверено 9 ноября 2015.
  14. GDC 2015: Valve Announces Source 2 Engine - IGN. IGN. Проверено 9 ноября 2015.
  15. Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix. www.phoronix.com. Проверено 9 ноября 2015.
  16. Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix. www.phoronix.com. Проверено 9 ноября 2015.
  17. Evan Odabashian on Twitter. Twitter. Проверено 9 ноября 2015.
  18. Reto Meier. Low-overhead rendering with Vulkan | Android Developers Blog. Low-overhead rendering with Vulkan | Android Developers Blog (10 августа 2015). Проверено 9 ноября 2015.
  19. Khronos Vulkan Registry. www.khronos.org. Проверено 16 февраля 2016.
  20. Quick Look: Vulkan Performance on The Talos Principle, Anandtech (17 February 2016). Проверено 19 февраля 2016.
  21. Dota 2 Update - May 23rd 2016. store.steampowered.com. Valve. Проверено 24 мая 2016.
  22. Vulkan Support Now Live - FAQ (англ.) (11 July 2016). Проверено 1 апреля 2017.
  23. DOOM стала первой игрой-блокбастером с поддержкой Vulkan API (рус.), OSZone (11 июля 2016). Проверено 11 июля 2016.
  24. DOOM – Vulkan Support Now Live. bethesda.net.
  25. Here is your first look at the first Quake being recreated in Unreal Engine 4 (fan project). Dark Side of Gaming (21 July 2016). Проверено 26 августа 2016.
  26. Quake 1 Ported To Run On Vulkan. Phoronix. Phoronix Media (25 July 2016). Проверено 26 августа 2016.
  27. See How Vulkan API and Galaxy S7 Create More Immersive Gaming Experiences (англ.), 2016-06-28. Проверено 1 апреля 2017.
  28. Твит Tiago Sousa 12.06.2017
  29. Forum: Vulkan API Support?
  30. X4 Foundations: neue 3D-Engine auf Basis von Vulkan wegen VR (нем.), PC Games Hardware. Проверено 14 ноября 2017.
  31. forums.robertsspaceindustries.com.
  32. Vulkan Overview. The Khronos Group. Проверено 5 июля 2016.