close

Vulkan (API)

Salt la navigare Salt la căutare
Software-ul Vulkan
Siglă
Exemplu de captură de ecran
GenAPI  (nu este  listat )
DezvoltatorGrupul Khronos
Data primei versiuni16 februarie 2016 [1]
Ultima versiune1.3.204 (25 ianuarie 2022)
Sistem de operareMultiplatformă
LimbaC++
C
LicențăApache 2.0
( licență gratuită )
Site-ul webwww.vulkan.org

Vulkan este o interfață de aplicație programatică (API) 2D și 3D multiplatformă de nivel scăzut , anunțată pentru prima dată la GDC 2015 de Khronos Group . A fost introdus inițial ca „Next Generation OpenGL ” al lui Khronos sau pur și simplu „glNext”, dar utilizarea acestor nume a fost suspendată odată ce numele lui Vulkan a fost anunțat. La fel ca OpenGL, obiectivele Vulkan sunt de înaltă performanță pentru aplicații grafice 3D în timp real, cum ar fi jocuri și medii interactive pe toate platformele; oferă, de asemenea, performanțe mai mari și mai puțină supraîncărcare a procesorului decât Direct3D 12 și Mantle . Se spune că Vulkan este „derivat din” și „construit pe” componentele AMD Mantle .

Khronos Group a anunțat intenția de a fuziona Vulkan și OpenCL într-o singură bibliotecă, ceea ce ar permite gestionarea împreună a părții grafice și a părții computaționale, reducând foarte mult complexitatea.

Introducere

Vulkan își propune să ofere o varietate de avantaje față de alte API-uri, precum și față de predecesorul său OpenGL. Vulkan oferă costuri mai mici, un control mai direct al hardware-ului și al GPU-ului și o utilizare mai redusă a procesorului, ceea ce duce la următoarele beneficii:

  • OpenGL folosește limbajul de nivel înalt GLSL pentru scrierea shader (analog cu HLSL de la DirectX ) care obligă fiecare driver OpenGL să execute propriul compilator pentru GLSL care realizează traducerea shader-ului programului în timpul rulării în cod executabil pentru platforma țintă. Vulkan oferă un intermediar binar numit SPIR-V (Standard Portable Intermediate Representation). Acest lucru reduce sarcina vânzătorilor de drivere, permite precompilarea shaderelor, permite dezvoltatorilor de aplicații să scrie shadere în alte limbi decât GLSL.
  • API-uri multiplatformă acceptate atât pe dispozitive mobile, cât și pe plăcile grafice de ultimă generație.
  • OS agnostic pentru a îmbunătăți portabilitatea aplicațiilor create folosind API-ul.
  • Suport îmbunătățit pentru sistemele moderne care utilizează multithreading.
  • Încărcare redusă a procesorului în situațiile în care procesorul este blocajul, permițând un randament mai mare pentru calculele și randarea GPU.

Versiuni

Vulkan 1.0

Lansate oficial pe 16 februarie 2016, acestea reprezintă prima versiune finală a API-ului Vulkan. Actualizările sunt lansate periodic, introducând noi funcții, remediând erori și extinzând documentația pentru dezvoltatori.

Vulkan 1.0.5 (4 martie 2016)

  • Rezolvarea unei erori
  • S-au adăugat reguli noi
  • S-au remediat unele specificații în documentație
  • S-a adăugat extensia NVIDIA VK_NV_glsl_shader

Vulkan 1.0.39 (23 ianuarie 2017)

Este versiunea cu cele mai multe știri de la prima lansare a API-ului

  • Rezolvarea unei erori
  • S-au adăugat multe extensii noi (de exemplu, VK_KHR_get_physical_device_properties2 și VK_KHR_maintenance1)
  • Toată documentația actualizată, în special clarificări
  • Câteva optimizări în ceea ce privește performanța

Vulkan 1.0.61.1 (20 septembrie 2017)

  • Rezolvarea unei erori
  • Au fost introduse multe extensii noi (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list etc.)
  • Întreruperea suportului pentru Microsoft Visual Studio 2013. Sunt acceptate numai versiunile ulterioare.

Vulkan 1.1

Lansat pe 8 martie 2018, este cea mai mare actualizare de la prima versiune. De asemenea, va urmări progresul actualizărilor periodice ca pentru versiunea 1.0.

Inovațiile majore sunt:

  • Integrează suportul Spir-V 1.3
  • Introduce suport pentru HLSL
  • Introduce suport pentru YCbCr
  • Numeroase funcții noi (grupare dispozitive, vizualizare multiplă etc.).

Vulkan 1.2

Lansat pe 15 ianuarie 2020, este rezultatul efortului comun al Kronos cu comunitatea de dezvoltatori care au necesitat implementarea multor caracteristici și rezolvarea problemelor cunoscute.

Cele mai importante știri sunt:

  • Semafor cronologic pentru sincronizare
  • Suport HLSL îmbunătățit
  • Index de descriptori
  • 23 de extensii anterioare sunt integrate în API-ul de bază
  • Un nou SDK

În versiunea 1.2, extensiile pentru ray tracing au fost introduse pe bază experimentală .

Vulkan 1.3

Pe 25 ianuarie 2022, Vulkan 1.3 a fost lansat de grupul Khronos. Vulkan 1.3 se concentrează pe reducerea fragmentării făcând funcții noi să nu fie opționale, astfel încât un dispozitiv să poată fi considerat compatibil cu Vulkan 1.3. Noile funcții din Vulkan 1.3 includ randarea dinamică, starea dinamică suplimentară, API-ul de sincronizare îmbunătățit și profilurile personalizate pentru un dispozitiv.

Adăugiri

Când a lansat OpenCL 2.2, grupul Khronos a anunțat că va converge oriunde este posibil cu Vulkan pentru a permite flexibilitatea distribuirii software-ului OpenCL pe ambele API-uri. Acest lucru a fost demonstrat de Adobe Premiere Rush folosind compilatorul clspv open source pentru a compila cantități semnificative de cod de kernel OpenCL C pentru a rula pe un runtime Vulkan pentru distribuție pe Android.

Note

Link- uri externe