Vulkan — багатоплатформний прикладний програмний інтерфейс для 3D графіки і супровідних обчислень, представлений компанією Khronos Group. Початково розробка цього API відбувалася в рамках ініціативи OpenGL наступного покоління і на деяких презентаціях проєкт був анонсований під назвою «glNext», який був покликаний вирішити наявні проблеми та недоліки OpenGL, згодом цей проєкт отримав назву саме Vulkan. Враховуючи основні принципи, використані в розробці Vulkan, — його застосування має принести перевагу в швидкодії в порівнянні з OpenGL, шляхом ефективнішого використання GPU. Деякі компоненти Vulkan запозичені з іншого API — Mantle від компанії AMD, який свого часу також створювався для заміни вже наявних DirectX і OpenGL.
Огляд Основною метою створення Vulkan є раціональніше використання можливостей GPU і CPU в порівнянні з OpenGL. Він впроваджує пряміший контроль над роботою GPU і в свою чергу зменшує навантаження на CPU. Основні переваги: OpenGL використовує високорівневу мову програмування GLSL для написання шейдерів, який примушує кожен OpenGL драйвер імплементувати свій особистий компілятор для GLSL, який виконується під час роботи додатку, щоб транслювати шейдерні програми в виконуваний код для цільової платформи. Vulkan — замість цього забезпечує проміжний бінарний формат під назвою SPIR-V (Standard Portable Intermediate Representation), аналогічний бінарному формату в який компілюється HLSL шейдери на основі DirectX. Це в свою чергу, знімає навантаження для розробників драйверів, дозволяючи робити компіляцію шейдерів на етапі розробки. Також дозволяє розробникам застосунків створювати шейдерні програми на інших мовах, а не тільки на GLSL. Багатоплатформне API, яке підтримується і на звичайних комп'ютерах з високопродуктивними відеокартами, і на мобільних пристроях. Покращена підтримка сучасних систем, які використовують багатонитевість. Зниження навантаження на CPU в ситуаціях, коли процесор є слабкою ланкою, що дозволяє збільшити пропускну здатність для GPU-обчислень і візуалізації.
Історія Влітку 2014 року компанія Khronos Group почала проєкт для створення наступного сучаснішого графічного API. У липні 2014 року на SIGGRAPH, проєкт був публічно анонсований з закликами до участі.
Згідно організації США по патентах і товарних знаках, товарний знак «Vulkan» був зареєстрований 19 лютого 2015 року.
Vulkan був офіційно представлений і анонсований на Game Developers Conference 2015.
З березня 2015 року, Valve анонсувала Source 2, ігровий рушій з підтримкою графічного API Vulkan.
На початку 2015 року, LunarG (фінансується Valve) був розроблений і представлений драйвер від Intel для Linux, котрий дозволив Vulkan мати сумісність з графічною системою HD 4000.
18 грудня 2015 року, Khronos Group заявила про те, що специфікація версії Vulkan 1.0 практично завершена і буде випущена коли будуть доступні сумісні драйвери.
1 березня 2022 року було випущено Vulkan SC 1.0, що містить графіку та обчислення Vulkan для критично важливої галузі безпеки, водночас базуючись на стандарті Vulkan 1.2.
Сумісність Згідно інформації з офіційних джерел Khronos, Vulkan сумісний на пристроях, які на момент випуску підтримують OpenGL ES 3.1 — для мобільних або OpenGL 4.x — для звичайних, і новіших версіях. Для підтримки Vulkan потребуватиме нових драйверів.
Компанія Апаратні засоби Підтримка Vulkan 1.0 Мікроархітектура Випущена Графічні чипи Відеокарти Linux Microsoft Windows Android Nougat і наступні AMD GCN 4-ого покоління червень 2016 Polaris 10, Polaris 11, Vega 10 AMD Radeon Rx 400 серії rowspan="2" rowspan="4" rowspan="4" GCN 3-ого покоління серпень 2014 Tonga, Fiji, Carrizo Radeon R9 серії GCN 2-ого покоління березень 2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One В розробці GCN 1-ого покоління лютий 2012 Oland, Cape Verde, Pitcairn, Tahiti Radeon HD 77xx–7900 серії TeraScale 3 грудень 2010 Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman Radeon HD 7xxx–76xx серії, Radeon HD 6000 серії rowspan="3" colspan="3" TeraScale 2 вересень 2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 серії TeraScale травень 2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 серії, Radeon HD 3000, Radeon HD 4000 серії Nvidia Pascal травень 2016 GP100, GP104, GP106, GP107 GeForce 10 серії, Tegra X2 rowspan="4" style="text-align: center" rowspan="4" style="text-align: center" rowspan="4" Maxwell 2.0 вересень 2014 GM200, GM204, GM206, GM20B GeForce 900 серії, Tegra Maxwell 1.0 лютий 2014 GM107, GM108 GeForce GTX 750 Ti, GTX 750, GTX 860M Kepler березень 2012 GK110, GK104, GK106, GK107, GK208 GeForce 600 Series, GeForce 700 Series, Tegra Fermi березень 2010 GF100, GF104, GF106, GF108, GF110, GF114, GF116, GF119 GeForce 400, GeForce 500 серій rowspan="3" colspan="3" Tesla 2.0 червень 2008 GT200, GT215, GT216, GT218, GeForce 200, GeForce 300 серій Tesla 1.0 листопад 2006 G80, G84, G86, G92, G94, G96, G98 GeForce 8, GeForce 9, GeForce 100 серій Intel Kaby Lake січень 2017 rowspan="5" rowspan="2" rowspan="7" Skylake серпень 2015 Core i3-/i5-/i7-6000, Pentium G4xxx, Celeron G39xx Broadwell червень 2015 Core i3-/i5-/i7-5000 rowspan="5" 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 rowspan="2" Westmere січень 2010 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101 Imagination Technologies PowerVR серії 8XE лютий 2016 GE8200, GE8300 rowspan="6" colspan="3" PowerVR серії 7XT листопад 2014 GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9 PowerVR серії 7XE листопад 2014 GE7400, GE7800 PowerVR серії 6XT січень 2014 GX6240, GX6250, GX6450, GX6650 Apple A8, A8X, MediaTek MT8173, MT8176, PowerVR серії 6XE січень 2014} G6050, G6060, G6100 (XE), G6110 RK3368 PowerVR серії Rogue січень 2012 G6100, G6200, G6230, G6400, G6430, G6630 MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Apple A7, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580 PowerVR серії 5XT січень 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 colspan="3" Qualcomm Adreno 500 серії Adreno 510, Adreno 530 Snapdragon 430, 625, 650, 652, 820 colspan="3" rowspan="2" Adreno 400 серії Snapdragon 415, 615, 616, 617, 805, 808, 810 Adreno 300 серії Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 colspan="3" ARM Bifrost червень 2016 Mali-G71, … colspan="3" rowspan="3" Midgard 4-го покоління кінець 2015 Mali-T860, Mali-T830, Mali-T880 Exynos 8890, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757) Midgard 3-ого покоління жовтень 2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288 Midgard 2-покоління серпень 2012 Mali-T600 серії, T720 Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 colspan="3"
Посилання
Див. також OpenGL — Інше API створене Khronos Group. OpenGL ES — підмножина графічного інтерфейсу OpenGL для мобільних пристроїв. Mantle — Низькорівневе API від компанії AMD. Direct3D — Набір API для графіки 2D і 3D, для платформи Windows. — API для графіки розроблене спеціально для iOS and OS X. Game Developers Conference — конференція для професійних розробників комп'ютерних ігор.