Що таке Вулкан і чим він відрізняється від OpenGL?


150

Група "Хронос" (орган з питань стандартизації OpenGL) щойно оголосила Вулкан :

Vulkan - це відкрите стандартне API нового покоління для високоефективного доступу до графіки та обчислень на сучасних графічних процесорах. Цей наземний дизайн, який раніше називався ініціативою OpenGL наступного покоління, забезпечує додаткам безпосередній контроль над прискоренням GPU для досягнення максимальної продуктивності та передбачуваності.

Їх сторінка досить маркетська / жаргонна -важка, як і прес-реліз … Простим словом, що означає Vulkan для розробників ігор? (Гейб Ньюел цитується як сильно на користь, без додаткових пояснень.)

Які саме стосунки Вулкана до OpenGL? Попередня назва "glNext" (скорочено "Покоління OpenGL Initiative наступного покоління") дозволяє звучати як заміна.


Оновлення: специфікація Vulkan 1.0 була випущена 16-02-2016.


3
Qo'noS і Vulcan ...
IllidanS4

14
Переклад для людей, які не зловили дрейф Star Trek : Хронос і Вулкан звучать як Qo'noS і Vulcan ; планети домашнього світу раси Клингон та Вулкан. Леонард Німой , актор Спока (дуже популярний герой), нещодавно помер 27.02.2015, тому існує велика кількість спекуляцій, що ім'я було даниною. Тим НЕ менше, це було збігом: Vulkan запит товарного знака була подана 2015-02-19; до смерті Німоя.
Анко

7
Також Мантія -> Лава -> Вулкан -> Вулкан.
jmegaffin

1
@Boreal Vulkan == Вулкан багатьма мовами (німецька, російська (з урахуванням кір.) Тощо). Тож це мантія -> Лава -> Вулкан (Вулкан) дійсно :)
користувач362515

Відповіді:


118

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 на Вулкан, що відповідає можливостям.


18
Можливо, варто зазначити, що Вулкан - це, в основному, ітератована версія Мантії: community.amd.com/community/amd-blogs/amd-gaming/blog/2015/03/… Конвенції API здаються дещо схожими на DSA OpenGL, за винятком всюдисущого glпрефіксу, заміненого на vk: blog.imgtec.com/powervr/…
jmegaffin

Я припускав, що так і буде, але до цього посилання не бачив жодних доказів, дякую.
Джош

3
FYI, ви зможете замінити міркування та здогадки на (деякий) важкий факт після викладу Вальва в четвер та мораторію на членів Хроноса, який розкриває більше деталей, скасовано (в основному).
Шон Міддлічч

4
Я вважаю, що байт-код у шейдері є дещо кумедним, враховуючи, що раніше для шейдерів був простий мова, схожий на збірку, а потім його замінили складною мовою (GLSL), і тепер ми повернемося до простої мови байт-коду.
іммібіс

2
Я думав, що Вулкан, як і Мантія, буде стояти поруч із OpenGL для отримання більш низького рівня доступу, а не замінить його повністю. Принаймні, це я читав досі. Або Вулкан буде охоплювати як операції низького, так і високого рівня?
Рой Т.

18

Детальніше про майбутнє OpenGL:

OpenGL може досягти порівнянних характеристик з Vulkan, при виклику в секунду, але також щодо загальних накладних витрат водія:

  • Останні розширення OpenGL фактично знімають багато накладних витрат драйверів, роблячи все беззмітним (наприклад ARB_direct_state_access(4.5 core) ,, ARB_bindless_texture...).
  • При стійкому відображенні ( ARB_buffer_storageядро в 4.4) до буферної пам'яті можна отримати доступ безпосередньо CPU, таким чином синхронізація з GPU також є явною, як і Vulkan.
  • Майбутні розширення, такі як NV_command_list(див. Презентацію Tristan Lorach Siggraph Asia 2014 ), ймовірно, нададуть OpenGL ту саму «парадигму подачі GPU», що і Vulkan.

11
Це насправді не відповідь на питання самостійно.
MichaelHouse

1

Нещодавно Khronos анонсував випуск абсолютно нового API Vulkan, який доповнить (а в деяких випадках замінить) OpenGL та OpenGL ES. Vulkan - це API з низькими накладними витратами, розроблений для наближення коду до «металу», підвищення продуктивності та ефективності. Він базується на Mantle API AMD, а остаточна характеристика очікується пізніше цього року.

У цій публікації - Короткий огляд API Vulkan - технічний редактор Toptal Нермін Гайдарбегович пояснює, чому Вулкан може бути великою справою в довгостроковій перспективі. Це може зайняти деякий час, але цей кросплатформенний API може різко покращити продуктивність 3D на певних пристроях, особливо багатоядерних процесорах додатків, які використовуються в мільярдах смартфонів і планшетів.


2
"Khronos нещодавно оголосив про випуск абсолютно нового API Vulkan" Гм, не станом на 18 серпня він цього не зробив. Жодне визначення цього терміна не було "звільнене". Зараз 8 грудня, і він досі не вийшов.
Нікол Болас

2
@NicolBolas - це вже зараз. Він був запущений сьогодні: khronos.org/vulkan
beatgammit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.