Тип | API для 3D графіки |
---|---|
Автор | Khronos Group в співпраці з AMD |
Розробник | Khronos Group |
Стабільний випуск | (6 вересня 2016) |
Платформа | крос-платформова програма |
Операційна система | багатоплатформне |
Мова програмування | C++ і C |
Стан розробки | Активний |
Ліцензія | Apache License, Version 2.0[d] |
Репозиторій | github.com/KhronosGroup/Vulkan-Headers |
Вебсайт | khronos.org/Vulkan |
Vulkan у Вікісховищі |
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 серії | AMDGPU PRO (тільки Ubuntu) | Radeon Software | Н/Д |
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 серії | не підтримується | ||
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 | Nvidia GeForce драйвери | Nvidia GeForce драйвери | Так |
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 серій | не підтримується | ||
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 | Mesa | 15.40.20 | Н/Д | ||
Skylake | серпень 2015 | Core i3-/i5-/i7-6000, Pentium G4xxx, Celeron G39xx | ||||
Broadwell | червень 2015 | Core i3-/i5-/i7-5000 | не підтримується | |||
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 серії 8XE | лютий 2016 | GE8200, GE8300 | PowerVR Graphics SDK v4.1 | |||
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 | не підтримується | ||
Qualcomm | ||||||
Adreno 500 серії | Adreno 510, Adreno 530 | Snapdragon 430, 625, 650, 652, 820 | 1.0 | |||
Adreno 400 серії | Snapdragon 415, 615, 616, 617, 805, 808, 810 | |||||
Adreno 300 серії | Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 | не підтримується | ||||
ARM | ||||||
Bifrost | червень 2016 | Mali-G71, … | В очікуванні | 1.0 | ||
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 | не підтримується |
Посилання ред.
- Hruska, Joel. . Extreme Tech. Архів оригіналу за 22 квітня 2016. Процитовано 26 червня 2015.
- Kirsch, Nathan. . Legit Reviews. Архів оригіналу за 26 червня 2015. Процитовано 25 червня 2015.
- Shilov, Anton. . KitGuru. Архів оригіналу за 26 червня 2015. Процитовано 26 червня 2015.
- Koduri, Raja (4 березня 2015). . AMD. Архів оригіналу за 20 травня 2015. Процитовано 19 травня 2015. «...(T)he Khronos Group has selected Mantle to serve as the foundation for Vulkan....»
- Michaud, Scott (3 березня 2015). . PC Perspective. Архів оригіналу за 20 травня 2015. Процитовано 19 травня 2015.
- https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/src/vulkan/vulkan.h
- https://github.com/KhronosGroup/Vulkan-Hpp/blob/master/LICENSE.txt
- Kessenich, John. . Khronos Group. Архів оригіналу за 9 березня 2015. Процитовано 5 березня 2015.
- . tsdr.uspto.gov. Архів оригіналу за 11 травня 2013. Процитовано 9 листопада 2015.
- . Polygon. Архів оригіналу за 5 березня 2015. Процитовано 9 листопада 2015.
- . IGN. Архів оригіналу за 4 березня 2015. Процитовано 9 листопада 2015.
- Larabel, Michael (5 березня 2015). Valve Developed An Intel Linux Vulkan GPU Driver. Phoronix. Процитовано 8 серпня 2017.
- Woods, Shannon (12 серпня 2015). Low-overhead rendering with Vulkan. Android Developers Blog. Архів оригіналу за 20 жовтня 2021.
- Vulkan SC - Vulkan graphics for the safety critical industry. The Khronos Group (англ.). 22 лютого 2019. Процитовано 30 березня 2022.
- (англ.). February 2016. Архів оригіналу за 8 грудня 2015. Процитовано 27 грудня 2015.
- . Архів оригіналу за 26 вересня 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 16 вересня 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 24 жовтня 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 25 лютого 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 22 жовтня 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 8 квітня 2016. Процитовано 10 вересня 2016.
- . 16 лютого 2016. Архів оригіналу за 15 лютого 2017. Процитовано 10 вересня 2016.
- Larabel, Michael (8 липня 2016). . Phoronix. Архів оригіналу за 16 серпня 2016. Процитовано 9 липня 2016.
- . Архів оригіналу за 31 травня 2016. Процитовано 10 вересня 2016.
- =http://www.prnewswire.com/news-releases/qualcomm-announces-vulkan-api-support-on-the-adreno-530-gpu-300221252.html [ 31 жовтня 2016 у Wayback Machine.]
- . 30 травня 2016. Архів оригіналу за 21 жовтня 2016. Процитовано 10 вересня 2016.
- . Архів оригіналу за 4 грудня 2016. Процитовано 10 вересня 2016.
Див. також ред.
- OpenGL — Інше API створене Khronos Group.
- OpenGL ES — підмножина графічного інтерфейсу OpenGL для мобільних пристроїв.
- Mantle — Низькорівневе API від компанії AMD.
- Direct3D — Набір API для графіки 2D і 3D, для платформи Windows.
- Metal (API)[en] — API для графіки розроблене спеціально для iOS and OS X.
- Game Developers Conference — конференція для професійних розробників комп'ютерних ігор.