close

Vulkan (API)

Hop til navigation Hop til søgning
Vulkan
software
Logo
Eksempel på skærmbillede
GenreAPI  (ikke på  listen )
UdviklerKhronos Group
Dato for første version16. februar 2016 [1]
Nyeste version1.3.204 (25. januar 2022)
Operativ systemMultiplatform
SprogC++
C
LicensApache 2.0
( gratis licens )
Internet sidewww.vulkan.org

Vulkan er et lavt niveau , multi-platform 2D og 3D programmatisk applikationsgrænseflade (API) , først annonceret på GDC 2015 af Khronos Group . Det blev oprindeligt introduceret som Khronos' "Next Generation OpenGL " eller blot "glNext", men brugen af ​​disse navne blev suspenderet, da Vulkans navn blev annonceret. Ligesom OpenGL er Vulkans mål høj ydeevne for 3D-grafikapplikationer i realtid såsom spil og interaktive medier på alle platforme; det tilbyder også højere ydeevne og mindre CPU- overhead end Direct3D 12 og Mantle . Vulkan siges at være "afledt af" og "bygget på" AMD 's Mantle-komponenter .

Khronos Group har annonceret hensigten om at fusionere Vulkan og OpenCL under et enkelt bibliotek, hvilket ville gøre det muligt at administrere grafikdelen og beregningsdelen sammen, hvilket i høj grad reducerer kompleksiteten.

Introduktion

Vulkan sigter mod at give en række fordele i forhold til andre API'er såvel som dens OpenGL-forgænger. Vulkan tilbyder lavere omkostninger, mere direkte kontrol over hardware og GPU og lavere CPU-forbrug, hvilket fører til følgende fordele:

  • OpenGL bruger GLSL -højniveausproget til shader - skrivning (analogt med DirectX's HLSL ), hvilket tvinger hver OpenGL-driver til at udføre sin egen compiler til GLSL, som udfører oversættelsen af ​​programshaderen ved runtime i eksekverbar kode til målplatformen. Vulkan leverer et binært mellemled kaldet SPIR-V (Standard Portable Intermediate Representation). Dette reducerer byrden på driverleverandører, tillader prækompilering af shaders, giver applikationsudviklere mulighed for at skrive shaders på andre sprog end GLSL.
  • Cross-platform API'er understøttet på både mobile enheder og avancerede grafikkort.
  • OS agnostisk for at forbedre portabiliteten af ​​applikationer, der er oprettet ved hjælp af API.
  • Forbedret understøttelse af moderne systemer, der bruger multithreading.
  • Reduceret CPU-belastning i situationer, hvor CPU'en er flaskehalsen, hvilket giver mulighed for højere gennemløb for GPU-beregninger og gengivelse.

Versioner

Vulkan 1.0

Officielt udgivet den 16. februar 2016 repræsenterer de den første endelige version af Vulkan API. Opdateringer udgives med jævne mellemrum, der introducerer nye funktioner, retter fejl og udvider udviklerdokumentationen.

Vulkan 1.0.5 (4. marts 2016)

  • Fejlrettelse
  • Nye regler tilføjet
  • Rettede nogle specifikationer i dokumentationen
  • Tilføjet NVIDIAs VK_NV_glsl_shader-udvidelse

Vulkan 1.0.39 (23. januar 2017)

Det er den udgivelse med flest nyheder siden den første udgivelse af api'et

  • Fejlrettelse
  • Mange nye udvidelser tilføjet (f.eks. VK_KHR_get_physical_device_properties2 og VK_KHR_maintenance1)
  • Al dokumentation opdateret, med særlig hensyn til præciseringer
  • Nogle optimeringer vedrørende ydeevne

Vulkan 1.0.61.1 (20. september 2017)

  • Fejlrettelse
  • Mange nye udvidelser introduceret (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list osv.)
  • Afbrydelse af understøttelse af Microsoft Visual Studio 2013. Kun senere versioner understøttes.

Vulkan 1.1

Udgivet den 8. marts 2018, er det den største opdatering siden den første version. Den vil også følge udviklingen af ​​periodiske opdateringer som for version 1.0.

De vigtigste nyskabelser er:

  • Integrerer Spir-V 1.3-understøttelse
  • Introducerer support til HLSL
  • Introducerer support til YCbCr
  • Talrige nye funktioner (enhedsgruppering, multi-view osv.).

Vulkan 1.2

Udgivet den 15. januar 2020, er det resultatet af Kronos' fælles indsats med fællesskabet af udviklere, der krævede implementering af mange funktioner og løsning af kendte problemer.

De vigtigste nyheder er:

  • Tidslinje trafiklys til synkronisering
  • Forbedret HLSL-understøttelse
  • Indeks over deskriptorer
  • 23 tidligere udvidelser er integreret i kerne-API'en
  • Et nyt SDK

I version 1.2 blev udvidelser til strålesporing introduceret på forsøgsbasis .

Vulkan 1.3

Den 25. januar 2022 blev Vulkan 1.3 udgivet af Khronos-gruppen. Vulkan 1.3 fokuserer på at reducere fragmentering ved at gøre nye funktioner ikke-valgfrie, så en enhed kan anses for at være kompatibel med Vulkan 1.3. Nye funktioner i Vulkan 1.3 inkluderer dynamisk gengivelse, yderligere dynamisk tilstand, forbedret synkroniserings-API og brugerdefinerede profiler til en enhed.

Tilføjelser

Da den udgav OpenCL 2.2, annoncerede Khronos-gruppen, at den ville konvergere, hvor det var muligt, med Vulkan for at give mulighed for fleksibiliteten ved at distribuere OpenCL-software på begge API'er. Dette er blevet demonstreret af Adobes Premiere Rush ved hjælp af open source clspv-kompileren til at kompilere betydelige mængder af OpenCL C-kernekode til at køre på en Vulkan -runtime til distribution på Android.

Noter

Eksterne links