Het moet de graphics-boost gaan worden van het nieuwe dashboard, we hebben het over DirectX 12. Hoe realistisch is deze boost en hoe werkt DirectX 12 eigenlijk?

Laten we eerst eens beginnen om uit te leggen wat dit magische DirectX nu precies is. Voordat we dat doen, proberen we een paar ICT-termen simpel uit te leggen. DirectX heeft alles met API’s te maken. API staat voor Application Programming Interface en is niks anders dan een openbare applicatie waarmee programmeurs in dit geval met de videokaart kunnen praten. Om het beeldend te zeggen: zie softwareprogramma’s als mannetjes die allemaal een eigen taal spreken. In een pc moeten deze mannetjes wel samenwerken. Zo zijn er programma’s/mannetjes die het beeld bouwen en mannetjes die berekenen hoe een gamepersonage beweegt of hoe andere personages in de game op jou als speler reageren. Omdat die talen verschillend zijn, is er een tolktaal nodig die zorgt dat de verschillende talen elkaar begrijpen. Die tolktalen, dat zijn de API’s.

DirectX is zo’n verzameling API’s, een verzameling van die tolktalen. Dit is met name handig voor de gameontwikkelaars. Omdat ze nu niet al die verschillende talen hoeven te begrijpen, is het voor hen makkelijker om een game te ontwikkelen en beter te stroomlijnen. Met kennis van die ene tolktaal kunnen ze toch de onbekende talen inzetten en beter gebruiken. DirectX richt zich vooral op beelden, video en gamen. Zo heeft het onder andere Direct3D, DirectPlay, DirectMusic, DirectSound in zich die allen gericht zijn op het goed laten draaien van games. Vooral de eerste, Direct3D, is voor ons als gamers interessant. Deze zorgt namelijk voor de communicatie met de CPU en GPU, respectievelijk je processor die de centrale berekeningen doet en je videokaart, de hardware die over de beelden gaat. De kwaliteit van het ‘praten’ tussen deze twee onderdelen is van groot belang voor het goed lopen van de game en van de beelden. Hierbij moet je denken aan zaken als resolutie en framerate.

In het stuk praten we ook over de term threads. Threads, letterlijk vertaalt draden, kan je ook inderdaad zien als draden of lijnen. Met de komst van processoren die meer kernen hebben (de Xbox One heeft er acht), kunnen meerdere processen tegelijkertijd afgehandeld worden. Er kan op acht afdelingen tegelijkertijd gewerkt worden. Als we dus een opdracht hebben die verwerkt moet worden, dan kan deze nu gesplitst worden in meerdere lijnen, threads dus. Ook zien we de term renderen. Renderen staat voor het omzetten, het opbouwen, het berekenen van bepaalde elementen. Als voorbeeld kan je schaduwen nemen of de lichtinval berekenen op bewegende onderdelen die je in beeld ziet. En hoe de glans en weerspiegeling van het licht op een snel rijdende auto valt.

Waarom is DirectX 12 beter?

Met de lancering van Windows 10 en het debuut van de game Ashes of the Singularity zijn de eerste effecten van DirectX 12 zichtbaar geworden. Tijdens de GDC 2014 maakten we voor het eerst kennis met DX12. Sindsdien heeft Microsoft via blog posts het één en ander laten zien over de kracht van deze nieuwe software. DirectX 11 had een aantal problemen. Het is bijvoorbeeld bijna onmogelijk om het 3D renderen, het maken van beelden, efficiënt over meerdere threads te laten lopen. Het beelden renderen gaat tot nu toe grotendeels via één thread. Daarbij doet DirectX 11, kijkende naar de onderliggende hardware, bepaalde handelingen die slecht ontvangen worden door GPU’s van AMD en Nvidia.

threads DX 12

Als we kijken naar dit voorbeeld dan zie je dat in DirectX 11 (bovenste gedeelte van de grafiek) handelingen blijven hangen op dat ene thread en dat er bijna geen gebruik wordt gemaakt van de andere threads, dat is een probleem. Doordat die ene thread alles afhandeld, zowel de kernel-mode driver als de game en de D3D laag, blijft er weinig ‘werk’ over voor de andere threads. In het onderste deel van de grafiek, waar gebruik gemaakt wordt van DirectX 12, zie je hoe de info wordt verdeeld over de verschillende threads waardoor de game een kortere verwerkingstijd laat zien wat op z’n beurt resulteert in een hogere framerate.

3DMDX11
DX11

 

DX12
DX12

In deze screenshots zie je het al. De totale verwerkingstijd is dramatisch verlaagd doordat DX12 de data beter verdeelt.

Hoewel de DirectX 12 software op elke pc natuurlijk hetzelfde is betekent niet dat een game er op elke pc hetzelfde uitziet. Verschillende video-kaarten kennen verschillende feature levels voor DirectX 12. De ene videokaart heeft dan bepaalde DirectX 12 voordeeltjes niet, terwijl het wel DirectX 12 ondersteund. De grafische kaart van de Xbox One is gebaseerd op de AMD 7790, deze videokaart ondersteund alle features van DirectX 12. DirectX 12 draait alleen op Windows 10.

Hoe zijn de prestaties?

De DirectX 12 performance wordt door verschillende zaken beïnvloed. Ook zijn de huidige benchmark nog erg vroeg en zijn het er nog erg weinig, maar er is toch al een verschil te zien op het gebied van GPU’s. Zo laat AMD, ook de fabrikant van de grafische unit van de Xbox One, een iets betere prestatie zien dan Nvidia. Maar om daar nu al een conclusie aan te verbinden, daar is het nog wat te vroeg voor. Uit de gegevens die tot nu toe bekend zijn geworden, weten we dat DirectX 12 niet automatisch zorgt voor een hogere framerate. De kracht van DX 12 ligt vooral bij de manier waarop het ontwikkelaars toegang heeft tot bepaalde technieken. Dit zorgt dan weer voor een betere verwerking wat weer resulteert in het sneller opbouwen van beelden en het creëren van meer ruimte voor andere berekeningen zoals die van de AI. Wanneer wij als Xbox One bezitters daar de eerste tekenen van gaan zien, daar weten we nog niet veel van, maar dat het beter moet worden, dat staat eigenlijk wel vast.

Abonneer
Abonneren op
0 Reacties
Inline Feedbacks
View all comments