Anonim

Laten we eerlijk zijn: DirectX 11 en OpenGL worden een beetje oud. DirectX 11 werd in 2009 geïntroduceerd met Windows 7 en OpenGL 4.0 volgde een jaar later. In softwarejaren zijn deze technologieën nu al oud en de huidige hoeveelheid hardware die ze gebruiken stond niet eens op de tekentafel toen deze grafische API's werden uitgebracht. Wat doet de industrie, gezien deze overduidelijke ontkoppeling, met de tijd mee? Nou, we zullen een kijkje nemen in de nabije toekomst en zien, maar om te beginnen laten we eerst uitleggen wat een API is en welke functie het voor gamen heeft.

Wat is een API?

Een API- of applicatie-programmeerinterface is een set protocollen en tools die worden gebruikt om software te bouwen. Grafische API's zijn eigenlijk gewoon een gespecialiseerde API die is gebouwd om het genereren van 3D-afbeeldingen eenvoudiger te maken. Grafische API's maken het bouwen van 3D-afbeeldingen gemakkelijker, maar ze stellen je ook in staat om de API te vertellen iets te doen (bijv. Een rechthoek tekenen) en op zijn beurt de API vervolgens te laten communiceren met de hardware over hoe je deze taak kunt voltooien. Dit is de belangrijkste reden waarom zoveel verschillende GPU's met gespecialiseerde hardware allemaal dezelfde games kunnen spelen. Zonder het bestaan ​​van een API zou dezelfde game op verschillende manieren moeten worden geschreven om met elke specifieke set hardware te communiceren. Dit zou de hardwarefabrikanten ernstig beperken en de kosten voor het bouwen van games aanzienlijk verhogen, een kosten die uiteindelijk aan de eindgebruiker zou worden doorberekend.

Om de bovenstaande uitleg een beetje eenvoudiger te maken, gebruik ik een analogie: denk aan een API als een bouwplaatsbeheerder. Het is zijn taak om het idee van de architect over te nemen en op te splitsen, in te plannen welke bemanningen waar en wanneer moeten zijn en ervoor te zorgen dat iedereen op dezelfde pagina staat over wat er moet gebeuren.

Figuur 1: Grafische weergave van hoe een API werkt

Momenteel gebruikte grafische API's

Nu we de taak van een grafische API begrijpen, zullen we de huidige line-up eens nader bekijken. De belangrijkste speler op de markt van vandaag is Microsoft's DirectX, dat al in 1995 werd geïntroduceerd. Het is sinds de release verschillende keren bijgewerkt en is opgenomen in het Windows-besturingssysteem van Microsoft. DirectX is de enige grafische API die vrijwel elke game die voor pc is uitgebracht, ondersteunt. Het is zelfs zo gebruikelijk dat het tegenwoordig echt de standaard is voor pc-gaming. DirectX is exclusief voor Windows- en Microsoft-producten, waardoor het helaas een zeer gesloten systeem is. De volgende in de rij is OpenGL, de enige grote open source grafische API. OpenGL werd uitgebracht in 1992 en is multi-platform, wat betekent dat het werkt met verschillende besturingssystemen, waaronder Windows, Linux en Mac OS. Eindelijk hebben we de nieuwste grafische API, Mantle. Mantle werd ontwikkeld in 2013 via een partnerschap tussen AMD en Dice. Mantle is beschikbaar op Windows, en alleen voor AMD GPU's.

Afbeelding 2: DirectX 12 vergelijken met DirectX 11
Afbeeldingsbron; Afbeeldingenkrediet: Intel

DirectX 12

DirectX 12 komt dit najaar uit met Windows 10 en er worden veel nieuwe verbeteringen aangeprezen. Een van de grote verbeteringen is veel betere ondersteuning voor multi-threading. Meer van het werk is verspreid over meerdere cores op de CPU, wat zorgt voor een veel beter en efficiënter CPU-gebruik. Vaak heeft DirectX 11 slechts één kern van de CPU volledig gemaximaliseerd, terwijl andere cores vrijwel inactief zijn. DirectX 12 belooft deze werklast gelijkmatiger over de CPU-kernen te verspreiden, waardoor de games veel meer CPU-vermogen hebben om mee te werken. De volgende grote verbetering beloofd door DirectX 12 is de mogelijkheid om nog veel meer draw-calls af te handelen. Een draw-call gebeurt op elk moment dat de game-engine iets op het scherm wil tekenen. De eis van veel draw-calls is over het algemeen zeer belastend voor de CPU. DirectX 12 zou 600.000 trekkingsgesprekken kunnen verwerken. Om dit in perspectief te plaatsen, kon DirectX 9 slechts 6.000 trekkingsgesprekken verwerken of 1 / 100ste van wat DirectX 12 zal kunnen.

Sinds jaren is het mogelijk meerdere GPU's in SLI / Crossfire-modus te gebruiken. Een van de grote beperkingen was echter dat de VRAM die in de kaarten was ingebouwd niet op elkaar stapelde om één grote, continue pool te maken. Als u bijvoorbeeld twee GPU's met elk 2 GB VRAM hebt, had u eigenlijk nog maar 2 GB VRAM omdat op elke kaart dezelfde informatie moest zijn opgeslagen. DirectX 12 hoopt dit probleem op te lossen door AFR of alternatieve beeldweergave te gebruiken. In plaats van dat elk GPU een deel van elk frame weergeeft, zullen de GPU's nu in plaats daarvan elk een volledig frame weergeven. Hierdoor kan de VRAM op elke kaart onafhankelijk worden gebruikt en hopelijk kunnen kaarten met kleinere hoeveelheden VRAM nog een tijdje langer worden gebruikt om te gamen. Er worden verondersteld dat veel andere nieuwe functies in DirectX 12 zijn opgenomen om gaming graphics verder te duwen dan ooit tevoren. Microsoft is echter nog steeds behoorlijk stil over wat deze nieuwe functies zijn. Hopelijk zullen we er binnenkort meer over weten als de release van de API dichterbij komt.

Figuur 3: DirectX 12 API Overhead is verminderd bij het gebruik van multi-core CPU's.
Afbeeldingsbron; Image Credit: nVidia GeForce

Vulkan

Er is niet zo veel bekend over Vulkan als over DirectX 12, zoals zojuist werd aangekondigd op GDC 2015. Wat we wel weten is dat de makers van OpenGL, Khronos Group, de naam glNext hebben laten vallen ten gunste van Vulkan. Vulkan lijkt te zijn afgeleid van Mantle, die ik eerder in dit artikel heb genoemd. Verder lijkt het erop dat AMD de beste delen van Mantle voor Vulkan op tafel legt in samenwerking met Khronos Group. Vulkan zou veel van dezelfde voordelen van DirectX 12 hebben, maar het is niet gebonden aan een enkel platform zoals Windows. Het zal in plaats daarvan beschikbaar zijn op veel verschillende platforms, waaronder Linux en zelfs mobiele apparaten. De Vulkan-stuurprogramma's voor zowel Windows als Linux zijn volledig open source in tegenstelling tot DirectX. Vulkan zal multi-threading verbeteren en daarom veel beter gebruik maken van de CPU-kracht die vandaag beschikbaar is door de werklast over meerdere CPU-kernen te spreiden. Zoals eerder vermeld, zal het verminderen van de belasting van de CPU ervoor zorgen dat GPU's niet zo gemakkelijk kunnen worden teruggezet als nu. Dit zou een behoorlijk substantiële framerate-boost moeten bieden tijdens het gamen. Bron 2, die onlangs werd aangekondigd door Valve, zal de eerste nieuwe game-engine zijn die Vulkan volledig ondersteunt, hoewel ik weet zeker dat er in de nabije toekomst nog veel meer zullen worden aangekondigd. Dota 2, een game die bekend staat als CPU-intensief, was een programma dat werd uitgevoerd in Bron 2 met de nieuwe Vulkan API met behulp van de geïntegreerde grafische kaart van Intel op de CPU. Dit is iets dat zeker niet wenselijk zou zijn geweest onder DirectX 11, maar met Vulkan leek de game overal een redelijke framesnelheid te behouden. Dan Baker, die een ontwikkelaar is van Oxide-spellen, ging zelfs zo ver om te zeggen dat "totdat de GPU-fabrikanten hun zaakje samenkomen en GPU's tien keer sneller maken dan we nu hebben, we de CPU niet kunnen maximaliseren". Dit is goed nieuws voor mensen met tragere CPU's of die momenteel veel GPU-paardenkracht hebben, omdat het betekent dat veel betere prestaties haalbaar zijn op dezelfde set hardware.

Figuur 4: Diagram met de voordelen van Vulkan (verminderd knelpunt voor GPU).
Afbeeldingsbron; Image Credit: Khronos

Wat betekent dit voor de toekomst van gaming?

Nou, al een hele tijd is GPU-vermogen nu veel sneller toegenomen dan CPU-vermogen. Vijf jaar geleden verklaarde Intel zelfs dat sommige GPU's 14 keer sneller waren dan hun eigen CPU's. Die tests werden uitgevoerd met een nVidia GTX 280 versus een i7 960 Intel CPU - nu beschouwd als relatief verouderde hardware. De kloof tussen een nVidia GTX Titan X (of zelfs een nVidia GTX 980) en de huidige mainstream CPU-krachtpatser - de Intel i7-4790k CPU - zou veel groter moeten zijn. Het punt dat ik probeer te maken, is dat we steeds meer games tegenkomen in prestaties vanwege de CPU. Vraag iemand met een monitor met een hoge verversingssnelheid hoe moeilijk het is om 100 + fps te behouden met de huidige CPU's in sommige games. Eerlijk gezegd zou het alleen maar moeilijker worden zonder deze nieuwe API's, en hun vermogen om de CPU-kracht efficiënter te gebruiken. De introductie van deze nieuwe API's kan voor de meeste mensen een enorme prestatieverbetering betekenen. Bovendien zouden ontwikkelaars ook veel meer CPU-intensieve games kunnen bouwen dan we nu hebben. Stel je bijvoorbeeld voor dat een spel als Assasins Creed duizenden NPC's tegelijk op het scherm heeft, allemaal interactie met elkaar en je personage terwijl je door een stad zwerven. Of games zoals Star Citizen, waar je een heel erg sterke CPU nodig hebt om elke vorm van stabiele en acceptabele framesnelheid te krijgen, vereisen in de nabije toekomst op zijn best een gemiddelde CPU en een sterke GPU om een ​​mooie solide 60 fps te behouden.

Uiteindelijk is dit een heel spannende tijd om een ​​gamer te zijn. Wanneer deze nieuwe grafische API's worden uitgebracht, zien we misschien wel de grootste sprong in gametechnologie in een lange tijd. Laten we hopen dat deze API's de hype kunnen waarmaken die ze al voor zichzelf hebben opgebouwd.

Nieuwe grafische api's en de toekomst van pc-gaming