Vulkan - це новий API для прискореної апаратною графікою (та загальних обчислень) за допомогою традиційних графічних процесорів. OpenGL буде продовжувати розроблятись, оскільки це API вищого рівня, ніж передбачається Vulkan. Спочатку посилався на "glNext", можна зробити висновок, що Вулкан, ймовірно, в кінцевому підсумку буде "OpenGL 5", але що орган стандартизації врешті-решт вирішив, що нове ім'я краще збігатиметься з відносно чистим розривом, який API має зробити з існуючих Парадигми OpenGL.
Практичні переваги Vulkan для розробників ігор полягають в першу чергу щодо контролю (наприклад, у тому, щоб дозволити більше його, що, можливо, дозволить покращити оптимізацію за рахунок значно більшої передової роботи з боку розробника). Конкретно:
- API орієнтований на асинхронне генерування командних буферів через декілька потоків та послідовну обробку цих буферів до командного конвеєра. Це відображає реалії сучасного обладнання. Більшість високопрофільних та / або високопродуктивних програм, створених на OpenGL, сьогодні реалізують такий тип поведінки; мати підтримку API саме по собі означає, що розробникам не потрібно самостійно впроваджувати та підтримувати ці рамки, або що вони можуть робити це з меншими зусиллями.
- Завдання управління нитками та пам’яттю залишаються за допомогою програми, а не драйвера, що дозволяє розробникам ігор більше контролювати таку поведінку і, таким чином, потенційно точніше пристосовувати їх поведінку до їх індивідуальних потреб гри.
- Шари валідації та діагностики можуть бути включені незалежно, що дозволяє теоретично покращити інтеграцію інструментів з API (те, що сам OpenGL постраждав) і відключити надмірну перевірку, теоретично дозволяючи " графіці на рівні 3 " бути набагато ефективнішою.
- Немає жорсткої різниці API між мобільною та настільною версіями, яка теоретично полегшить перенесення ігор на платформу, і якщо нічого іншого не зменшить головні болі, що перевіряють версії, які всі ненавиджу.
Вулкан дуже С-подібний / OpenGL-подібний у поверхневій структурі (зовнішній вигляд API-дзвінків та ін. Це, однак, краще вводити (оскільки не все є голою int
; є відповідні typedefs тощо).
Це набагато нижчий рівень, ніж OpenGL. Можна очікувати стрибка операційних налаштувань і складності між OpenGL та Vulkan, як це було показано в переході від D3D9 до D3D10, який розкрив для клієнта API набагато більше деталей щодо роботи пристрою GPU, що знаходиться під кришкою. Перехід насправді більше схожий на D3D11 на 12, оскільки сам D3D12 дуже схожий API на Вулкан, що відповідає можливостям.