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.

Компания Аппаратная поддержка Поддержка программного обеспечения: Vulkan 1.0
Архитектура Доступно GPUs (chips) Графические карты / SoCs Android[a] Linux Microsoft Windows[b]
AMD
GCN 5th август 2017 Vega 10 Radeon Rx Vega series N/A AMDGPU PRO (Ubuntu & RHEL)[34][35]
& RADV in Mesa[36]
Radeon Software[37]
GCN 4th июнь 2016 Polaris 10, Polaris 11, Polaris 12 Radeon Rx 400 series
GCN 3rd август 2014 Tonga, Fiji, Carrizo Radeon R9 Series
GCN 2nd март 2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One экспериментальные
GCN 1st февраль 2012 Oland, Cape Verde, Pitcairn, Tahiti Radeon HD 77xx–7900 Series
TeraScale 3 декабрь 2010 Cayman, Trinity/Richland Radeon HD 69xx Series, Radeon HD 7xxx–76xx Series не поддерживается
TeraScale 2 сентябрь 2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 Series, Radeon HD 6350, Radeon HD 64xx–68xx Series
TeraScale 1 май 2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 Series, HD 3000, HD 4000
Nvidia
Volta Шаблон:Tba GV10x
Pascal май 2016 GP10x GeForce 10 series, Tegra X2 Да Nvidia GeForce driver[38][39] Nvidia GeForce driver[39]
Maxwell февраль 2014 GM10x, GM20x GeForce GTX 750 Ti, GTX 750, GTX 860M, GeForce 900 series, Tegra X1
Kepler март 2012 GK10x, GK110, GK208 GeForce 600 series, GeForce 700 series, Tegra K1
Fermi март 2010 GF10x, GF11x GeForce 400 series, GeForce 500 series не поддерживается
Tesla ноябрь 2006 G8x, G9x, GT20x, GT21x GeForce 8 series, GeForce 9 series, GeForce 100 series, GeForce 200 series, GeForce 300 series
Intel
Kaby Lake 03 января 2017 Core i3-/i5-/i7-7000, Pentium xyz, Celeron xyz Anvil in Mesa 17.1[40] Anvil in Mesa[41][42] Intel Graphics driver[43]
Skylake август 2015 Core i3-/i5-/i7-6000, Core m3-/m5-/m7-6Yxx, Pentium G4xxx, Celeron G39xx
Broadwell сентябрь 2014 Core i3-/i5-/i7-5000, Core M-5Yxx не поддерживается
Haswell сентябрь 2012 Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx
Ivy Bridge апрель 2012 Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx
Sandy Bridge январь 2011 Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx не поддерживается не поддерживается
Westmere январь 2010 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101
Imagination Technologies
PowerVR Series 8 февраль 2016 GE8200, GE8300 PowerVR Graphics SDK v4.1[44]
PowerVR Series 7 ноябрь 2014 GE7400, GE7800, GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9, A9X, A10 Fusion, Helio X30 (MT6799)
PowerVR Series 6 январь 2012 G6100, G6200, G6230, G6400, G6430, G6630, RK3368, G6050, G6060, G6100 (XE), G6110, GX6240, GX6250, GX6450, GX6650 Apple A7, A8, A8X, MediaTek MT8173, MT8176, MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580
PowerVR Series 5 январь 2009 SGX543, SGX544, SGX554 Apple S1, A5, A5X, A6, A6X, NovaThor L8540, L8580, L9540, TI OMAP 4470, 5430, 5432, MediaTek MT5327, MT6589M, MT6589T, MT6589, MT8117, MT8121, MT8125, MT8389, Atom Z2460, Z2520, Z2560, Z2580, Z2760, Exynos 5410 не поддерживается
Qualcomm
Adreno 500 series Adreno 510, Adreno 530, Adreno 540 Snapdragon 430, 625, 650, 652, 820, 821, 835 1.0[45]
Adreno 400 series Adreno 418,Adreno 420,Adreno 430 Snapdragon 415, 615, 616, 617, 805, 808, 810 1.0(Adreno 418,430)[46]
Adreno 300 series Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 не поддерживается
ARM
Bifrost[47] июнь 2016 Mali-G71, … Kirin 960, Exynos 8895, MediaTek Helio P23 (MT6763T), Helio P30 1.0[48]
Midgard 4th Q4 2015 Mali-T860, Mali-T830, Mali-T880 Exynos 8890, Exynos7880, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757)
Midgard 3rd октябрь 2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288
Midgard 2nd август 2012 Mali-T600 series, T720 Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 не поддерживается

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

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

  1. Vulkan 1.0.68 - 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.
  33. The Android platform includes an Android-specific implementation of the Vulkan API specification from the Khronos Group (April 5, 2016).
  34. Larabel, Michael AMDGPU-PRO 16.40 Released For Ubuntu & Red Hat Linux Systems. Phoronix (October 27, 2016).
  35. Radeon GPUs are ready for the Vulkan graphics API. Community. AMD.
  36. Larabel, Michael Testing The Open-Source "RADV" Radeon Vulkan Driver vs. AMDGPU-PRO. Phoronix (August 30, 2016).
  37. AMD Radeon Software version 16.15.1009 supports Vulkan (February 16, 2016).
  38. NVIDIA DRIVERS Linux x64 (AMD64/EM64T) Display Driver. Nvidia.
  39. 1 2 Vulkan Driver Support. NVIDIA Developer. Nvidia. Проверено 4 апреля 2016.
  40. android: add vulkan build for intel (January 31, 2017).
  41. Open-source Vulkan drivers for Intel hardware (February 16, 2016).
  42. Larabel, Michael Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features. Phoronix (July 8, 2016).
  43. 15.45.14.4590: Intel Graphics Driver for Windows 7/8.1/10 (Vulkan Support). Intel.
  44. Imagination announces Vulkan SDK for PowerVR Rogue GPUs. Imagination Blog. PowerVR Developer Technology Team (March 16, 2016). Проверено 27 апреля 2016.
  45. Qualcomm announces Vulkan API support for Adreno 5xx and 4xx GPUs.
  46. Vulkan Hardware Database.
  47. ARM Bifrost GPU Architecture (May 30, 2016).
  48. ARM® Mali™GPUs with Vulkan Conformance.


Ошибка в сносках?: Для существующих тегов <ref> группы «lower-alpha» не найдено соответствующего тега <references group="lower-alpha"/> или пропущен закрывающий тег </ref>