Vulkan (API)
| Vulkan programvare | |
|---|---|
| Sjanger | API (ikke oppført ) |
| Utvikler | Khronos-gruppen |
| Dato for første versjon | 16. februar 2016 [1] |
| Siste versjon | 1.3.204 (25. januar 2022) |
| Operativsystem | Multiplattform |
| Språk | C ++ C |
| Tillatelse | Apache 2.0 ( gratis lisens ) |
| Nettsted | www.vulkan.org |
Vulkan er et lavt nivå , multi-plattform 2D og 3D programmatisk applikasjonsgrensesnitt (API) , først annonsert på GDC 2015 av Khronos Group . Det ble opprinnelig introdusert som Khronos' "Next Generation OpenGL " eller ganske enkelt "glNext", men bruken av disse navnene ble suspendert når Vulkans navn ble kunngjort. I likhet med OpenGL er Vulkans mål høy ytelse for sanntids 3D-grafikkapplikasjoner som spill og interaktive medier på alle plattformer; den tilbyr også høyere ytelse og mindre CPU -overhead enn Direct3D 12 og Mantle . Vulkan sies å være "avledet fra" og "bygd på" AMDs Mantle-komponenter .
Khronos Group har kunngjort intensjonen om å slå sammen Vulkan og OpenCL under et enkelt bibliotek, som vil tillate å administrere grafikkdelen og beregningsdelen sammen, noe som reduserer kompleksiteten betraktelig.
Introduksjon
Vulkan har som mål å gi en rekke fordeler i forhold til andre APIer så vel som OpenGL-forgjengeren. Vulkan tilbyr lavere kostnader, mer direkte kontroll over maskinvaren og GPU og lavere CPU-bruk, noe som fører til følgende fordeler:
- OpenGL bruker høynivåspråket GLSL for shader - skriving (analogt med DirectXs HLSL ) som tvinger hver OpenGL-driver til å kjøre sin egen kompilator for GLSL som utfører oversettelsen av programshaderen ved kjøretid i kjørbar kode for målplattformen. Vulkan tilbyr et binært mellomledd kalt SPIR-V (Standard Portable Intermediate Representation). Dette reduserer belastningen på driverleverandører, tillater forhåndskompilering av shaders, lar applikasjonsutviklere skrive shaders på andre språk enn GLSL.
- Cross-platform APIer støttet på både mobile enheter og avanserte grafikkort.
- OS agnostisk for å forbedre portabiliteten til applikasjoner opprettet ved hjelp av API.
- Forbedret støtte for moderne systemer som bruker multithreading.
- Redusert CPU-belastning i situasjoner der CPU er flaskehalsen, noe som gir høyere gjennomstrømning for GPU-beregninger og gjengivelse.
Versjoner
Vulkan 1.0
Offisielt utgitt 16. februar 2016, representerer de den første endelige versjonen av Vulkan API. Oppdateringer utgis med jevne mellomrom, som introduserer nye funksjoner, fikser feil og utvider utviklerdokumentasjonen.
Vulkan 1.0.5 (4. mars 2016)
- Feilretting
- Nye regler lagt til
- Rettet noen spesifikasjoner i dokumentasjonen
- Lagt til NVIDIAs VK_NV_glsl_shader-utvidelse
Vulkan 1.0.39 (23. januar 2017)
Det er utgivelsen med flest nyheter siden den første utgivelsen av api
- Feilretting
- Mange nye utvidelser lagt til (f.eks. VK_KHR_get_physical_device_properties2 og VK_KHR_maintenance1)
- All dokumentasjon oppdatert, spesielt med tanke på avklaringer
- Noen optimaliseringer angående ytelse
Vulkan 1.0.61.1 (20. september 2017)
- Feilretting
- Mange nye utvidelser introdusert (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list, etc)
- Avvikling av støtte for Microsoft Visual Studio 2013. Bare nyere versjoner støttes.
Vulkan 1.1
Utgitt 8. mars 2018, er det den største oppdateringen siden den første versjonen. Den vil også følge fremdriften til periodiske oppdateringer som for versjon 1.0.
De viktigste nyvinningene er:
- Integrerer Spir-V 1.3-støtte
- Introduserer støtte for HLSL
- Introduserer støtte for YCbCr
- Tallrike nye funksjoner (enhetsgruppering, multivisning osv.).
Vulkan 1.2
Utgitt 15. januar 2020, er det resultatet av Kronos' felles innsats med fellesskapet av utviklere som krevde implementering av mange funksjoner og løsning av kjente problemer.
De viktigste nyhetene er:
- Tidslinje trafikklys for synkronisering
- Forbedret HLSL-støtte
- Indeks over beskrivelser
- 23 tidligere utvidelser er integrert i kjerne-API
- En ny SDK
I versjon 1.2 ble utvidelser for strålesporing introdusert på eksperimentell basis .
Vulkan 1.3
25. januar 2022 ble Vulkan 1.3 utgitt av Khronos-gruppen. Vulkan 1.3 fokuserer på å redusere fragmentering ved å gjøre nye funksjoner ikke-valgfrie slik at en enhet kan anses som kompatibel med Vulkan 1.3. Nye funksjoner i Vulkan 1.3 inkluderer dynamisk gjengivelse, ekstra dynamisk tilstand, forbedret synkroniserings-API og tilpassede profiler for en enhet.
Tillegg
Da den ga ut OpenCL 2.2, kunngjorde Khronos-gruppen at den ville konvergere med Vulkan der det er mulig for å gi fleksibiliteten til å distribuere OpenCL-programvare på begge API-ene. Dette har blitt demonstrert av Adobes Premiere Rush ved å bruke åpen kildekode clspv-kompileren for å kompilere betydelige mengder OpenCL C-kjernekode for å kjøre på en Vulkan- runtime for distribusjon på Android.
Merknader
Eksterne lenker
- Offisiell side , på vulkan.org .
- Vulkan kildelager , på github.com .