Vulkan

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
Vulkan

Vulkan.svg

Kehittäjä AMD / Khronos
Kehityshistoria
Julkaistu 1.0 / 16. helmikuuta 2016.[1]
Tiedot

Vulkan on Khronos Groupin julkaisema ohjelmointirajapinta. Ennen ensimmäistä julkaisua on myös käytetty epävirallista termiä glNext tai OpenGL Next.

Vulkan on suunniteltu laajempaan käyttöön kuin aikaisempi OpenGL: rajapinta tukee muutakin käyttöä kuin grafiikkarajapintana käyttöä. Muita tuettuja toimintoja ovat GPGPU-käyttöön tarkoitettu laskentakapasiteetti ilman näyttötoimintoa tai vastaavaa.[2]

Vulkan on suunniteltu käytettäväksi grafiikkaprosessoreilla, digitaalisilla signaaliprosessoreilla sekä kiinteätoimisilla laitteilla.[2]

Vulkan myös toimii lähempänä laitteistotasoa ja ajurit jättävät enemmän vastuuta sovelluskehittäjälle kuten tilaseurannan, muistihallinnan, synkronoinnin ja vikatilanteiden käsittelyn.[2]

Toiminnot[muokkaa | muokkaa wikitekstiä]

Rajapinnan yhteydessä käytetään termejä isäntämuisti (engl. host) ja laitemuisti (engl. device). Laitteen muistin hallinta ja liittäminen isäntämuistiin varattuun objektiin on sovelluksen tehtävä Vulkan-rajapinnassa. Korkeamman tason rajapinnat kuten OpenGL suorittavat läpinäkyvästi osan tästä muistihallinnasta.[2]

Vulkan tukee monisäikeistä käsittelyä. Sen käyttämästä synkronoinnista käytetään termiä ulkoinen synkronointi (engl. external synchronization), jolloin on sovelluksen vastuulla varmistua ettei samaa objektia muokata useammasta säikeestä yhtä aikaa.[2] Synkronointiin käytettäviä toimintoja ovat aidat (engl. fences), tapahtumat (engl. events) ja semaforit (engl. semaphores).[2] Lisäksi on esteitä (engl. barriers), joita voidaan käyttää suoritusesteinä (vkCmdPipelineBarrier) tai muistiesteinä (vkMemoryBarrier).[2]

Rajapintaa käyttävä sovellus käynnistää yhden tai useamman instanssin (engl. instance). Instanssiin voidaan liittää yksi tai useampi fyysinen laite, joita voidaan käyttää yhden tai useamman loogisen laitteen kautta. Loogisilla laitteilla on yksi tai useampi jono, joiden kautta komentoja käsitellään. Hierarkia on suunniteltu joustavuutta varten.[2]

Diagnostiikkaa ja virheidenjäljitystä varten voidaan ottaa käyttöön lisätoimintoja kerroksittain (engl. layers), joita julkaistavassa sovellusversiossa ei tarvita.[2]

Historia[muokkaa | muokkaa wikitekstiä]

Vulkan pohjautuu AMD:n Mantle-rajapintaan, jonka AMD lahjoitti Khronokselle uuden matalamman tason API:n kehityksen pohjaksi.[3]

Vulkanin ensimmäinen versio 1.0 julkaistiin 16. helmikuuta 2016.[1]

Vulkanin on tarkoitus tukea laajasti olemassa olevia alustoja, kuten Linux sekä Windows. Apple oli aluksi mukana mutta siirtyi sitten kehittämään omaa Metal rajapintaansa.[4] Microsoftin DirectX 12 tulee vain Windows 10:lle.[1]

Vulkan tukee GPGPU käyttöä nimellä Compute Pipeline.[5]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. a b c OpenGL:n korvaajan ja DirectX 12:n haastajan ensimmäinen versio julkaistiin – Mikrobitti www.mikrobitti.fi. Viitattu 18.2.2016.
  2. a b c d e f g h i Sellers, Graham: Vulkan Programming Guide. Addison-Wesley, 2017. ISBN 978-0-13-446454-1. (englanniksi)
  3. Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor 6.3.2015. PC World. Viitattu 29.12.2017.
  4. OpenGL's successor is ready to improve gaming graphics Engadget. Viitattu 18.2.2016.
  5. 9.1. Compute Pipelines Khronos Group. Viitattu 20.1.2017.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]