Wat is Vulkan? Definitie en omschrijving van de grafische API.

Auto-generated excerpt

Wat is Vulkan? Definitie en omschrijving van de grafische API

Vulkan is een open-source, object-oriented programmairengespreid besturingssysteem (API) voor grafische rekenmachinekaarten die in 2009 ontwikkeld is door AMD. In dit artikel wordt uitgelegd wat Vulkan precies is en hoe het werkt.

Een geschiedenis van DirectX

Voor de komst van Vulkan was Direct X, een proprietary API ontwikkeld door Microsoft voor Windows-platforms, zeer populair in de industrie. Hoewel er veel kritiek op gericht werd omdat hij niet open-source is en dus niet vrij te gebruiken valt voor anderen, bleef het tot nu toe de facto standaard.

Toen NVIDIA besloot om Vulkan casino hun eigen API, CUDA, te ontwikkelen was de vraag of Microsoft zou reageren. En ja, dat deed men. In 2015 werd Vulkan gepresenteerd aan de publiciteit van AMD’s conferentie voor gameontwikkeling op de E3 in Los Angeles.

Waarom een nieuwe API?

Veel ontwikkelaars van games wilden iets nieuws met zowel spel en platform-technologie als dat men tot nu toe had. De redenen om een alternatief te zoeken zijn verschillend, maar het meest vooraanstaande motief was de overdracht naar opslag-technieken zoals shader code die wordt uitgevoerd door rekenmachinekaarten in plaats van software.

Dit alles werd een nieuwe API nodig. Wat er gedaan is is dat men een programmairengespreid besturingssysteem (API) geschreven heeft op basis van objecten waarmee de ontwikkelaar omgaat met spel en grafische functionaliteit via een bepaalde manier.

Hoe werkt Vulkan?

Het is duidelijk dat als je Vulkan wilt begrijpen, eerst moet worden verstaan hoe het in elkaar steekt. Op basis van objecten maken ontwikkelaars rekenmachinekaarten compatibel met hun eigen applicaties en code voor die hardware (GPU). In plaats daarvan gaat men nu om via een API dat de gebruiker faciliteert, waarmee op elke kaart verschillende functies kunnen worden uitgevoerd.

Vulkan is ontwikkeld door AMD, maar dit maakt het geen proprietair systeem. De code wordt gedeeld onder open-source licentie, zodat iedereen ermee kan werken en de broncode kunt wijzigen. Daarnaast was er een apart project opgezet met ondersteuning voor specifieke hardware.

De kerncomponenten van Vulkan

Vulkan bestaat uit drie kerncomponenten:

  1. Device : Dit is het hoofdobject in Vulkan, waarvan je vaak spreekt en waarmee je communicatie voerdt naar de rekenmachinekaart of GPU.
  2. Command Buffer (commandBuffer) : Deze objecttype bestaat uit een sequence van instructies om op te vragen aan de kaart die gedaan moeten worden door het systeem.
  3. Pipeline : Hiermee wordt vastgelegd wat precies met elke bepaalde instructie moet gebeuren in een bepaald proces.

Voor- en nadelen van Vulkan

Op basis van de voorbeeldcodes die ondersteuning bieden is het duidelijk dat dit systeem helemaal niet zo ingewikkeld hoeft te zijn. Welke voordelen biedt Vulkan eigenlijk?

  • Een verbeterd systeem om met rekenmachinekaarten samen te werken en optimaal uit de kaart te halen.
  • Werkelijk snelle gegevenstransfer via DMA (Direct Memory Access) die wordt ondersteund door het API.
  • Naamloos aanmaken van specifieke objecten, zoals command buffers en pipeline state objects.

Hoe zit het nou met de nadelen? Hier zijn ze:

  • Een complex systeem dat soms moeilijk is om te begrijpen voor wie niet bekend is.
  • Beide kanten hebben een hoge vaste lastenkost die moet worden opgetoond in tegenstelling tot GPU’s van vroeger.