Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord
Achtergrond
None

Api’s kijken – Wat hebben gamers aan DirectX 12?

Meer vrijheid voor ontwikkelaars

Geschreven door Wilbert Meetsma op
Windows 10 komt eind deze maand uit en het aankomende besturingssysteem introduceert de nieuwste versie van DirectX. De twaalfde iteratie van dit cruciale stukje software is de oorzaak van enthousiast geroezemoes onder toegewijde pc-gamers. Wat is DirectX 12 en waarom moeten we er blij van worden?

Voordat we gaan smijten met termen als ‘draw calls’ en ‘multi-gpu’ is het handig om eerst uit te leggen waar DirectX überhaupt goed voor is. En om dat te verklaren kunnen we het beste beginnen bij het grote pluspunt van consoles. Spelcomputers als de Xbox One en PlayStation 4 zijn uniform; elke console bevat (vrijwel) precies dezelfde onderdelen. Dat is heerlijk voor ontwikkelaars, want zij weten precies waar ze aan toe zijn bij het ontwerpen van hun game. Omdat exact bekend is wat een PlayStation 4 kan, kunnen programmeurs alles uit de beschikbare hardware halen en dicht ‘op het metaal’ werken.

Daar tegenover staat de pc, met zijn ellendige eigenschap om in honderden, zo niet duizenden, verschillende soorten en maten te komen. Met zo veel mogelijke combinaties van processors en gpu’s – ‘graphics processing unit’ is de technische term voor ‘videokaart’ – is het onmogelijk om overal rekening mee te houden bij de ontwikkeling van een game. Toen eind jaren negentig de eerste 3d-versnellers verschenen, was het niet ongebruikelijk dat ontwikkelaars een aparte versie voor populaire videokaarten als de ATI Rage 3D en de S3 ViRGE moesten schrijven. Zou het niet heerlijk zijn als er een soort laag tussen de game en de hardware zit, die de commando’s om een bepaalde scène te tekenen zodanig vertaalt, dat alle videokaarten het begrijpen?

None

Enter DirectX

Dat is nou precies wat een api doet. Een api – kort voor ‘application programming interface’ – is een soort basisstuurprogramma dat allerlei soorten hardware met elkaar laat communiceren. Als een game het geluid van een geweerschot wil laten horen, hoeft het dankzij een api niet precies te weten welke geluidschip op het moederbord zit. De game stuurt zijn verzoek uit en de api geeft het door. Er bestaan meerdere api’s – OpenGL, Glide voor de 3dfx-kaarten van weleer, het recent doodverklaarde Mantle en Vulkan dat ervoor in de plaats komt – maar veruit de bekendste is Microsofts DirectX. DirectX bestaat uit meerdere onderdelen die elk een categorie aan hardware helpen aansturen, zoals DirectInput, DirectSound en de belangrijkste voor dit artikel: Direct3D.

Ontwikkelaars krijgen meer vrijheid om ‘dichterbij’ de hardware te programmeren

Een api helpt dus bij de ondersteuning van een breed scala van hardwarecombinaties, maar die abstractie heeft een groot nadeel. De vertaalslag tussen instructies van bijvoorbeeld de processor naar de gpu kost tijd. Het gaat om slechts milliseconden per frame, maar als je tientallen beelden per seconde nodig hebt voor een geloofwaardige ervaring is elke onnodige milliseconde er een te veel. Bezitters van AMD-videokaarten zullen dit hebben gemerkt de afgelopen paar jaar. Onder Direct3D 11 duurt het namelijk opvallend lang voordat een AMD-gpu een ‘draw call’ – het verzoek van de processor om een bepaald object op het scherm te renderen – heeft verwerkt. Zeker in combinatie met langzamere processors, zoals een Core i3, zakt het aantal draw calls per seconde in als een mislukte pudding.

None

Afgeslankt

DirectX 12 komt met belangrijke verbeteringen ten opzichte van 11. Allereerst wordt de laag tussen hardware en game een stuk slanker. Ontwikkelaars krijgen meer vrijheid om ‘dichterbij’ de hardware te programmeren, zodat er minder vertaalslagen nodig zijn voor een snelle communicatie. Daarnaast is de werkdruk veel beter geoptimaliseerd voor meerdere processorkernen. Voorlopige benchmarks laten alvast zien dat DX12 de taken een stuk netter verdeelt over de beschikbare kernen, zodat je dure quadcore veel beter tot zijn recht komt.

Minstens zo handig is dat de processor de taken niet meer een voor een naar de videokaart stuurt, maar meerdere verzoeken tegelijkertijd en desnoods asynchroon bij de gpu neerlegt. Deze optimalisaties zorgen ervoor dat een AMD R9 290X die met DirectX 11 nauwelijks 600.000 draw calls kan bolwerken, met DirectX 12 ruim acht miljoen draw calls verwerkt. Bij Nvidia-kaarten is de toename iets minder spectaculair, maar dat heeft er vooral mee te maken dat deze gpu’s onder DX11 minder problemen ondervinden.

Mooier, sneller, beter

Betekent dit nu ook dat we bijna tien keer zoveel frames per seconde gaan zien bij games? Helaas niet, want de draw call is slechts een klein onderdeel van het hele proces om een frame te bakken. Maar het wegnemen van deze bottleneck levert wel extra snelheid op en maakt scenario’s mogelijk waarvan we met DirectX 11 alleen maar konden dromen. De demonstratie van de Oxide Games’ Ashes of the Singularity bevat honderden tanks en vliegtuigen die stuk voor stuk projectielen op de vijand afvuren en elk projectiel is ook nog eens zijn eigen lichtbron. Met DirectX 11 zou de processor zich verslikken in het rekenwerk en proestend de framerate onder de tien laten zakken, maar met DirectX 12 is het presenteren van een dergelijke veldslag binnen handbereik.

De optimalisaties voor processoren zijn veruit het belangrijkste pluspunt van DirectX 12, maar de nieuwste versie van Microsofts api bevat meer cadeautjes. De abstractielaag tussen software en hardware wordt niet alleen slanker, maar ook slimmer. Dit blijkt uit de mogelijkheid om straks de rekenkracht van je videokaart te combineren met de geïntegreerde grafische chip van je processor. Deze Multiadapter-feature levert gratis een paar extra frames per seconde op, door gebruik te maken van iets dat vaak toch al in je pc zit. Eerder dit jaar ging zelfs het gerucht rond dat Multiadapter ook gpu’s van Nvidia en AMD samen laat samenwerken, maar een officiële bevestiging blijft uit.

De ondersteuning voor meerdere gpu’s moet sowieso een stuk beter worden met de komst van DirectX 12. Nu is het nog zo dat het geheugen van meerdere videokaarten niet schaalt: twee gpu’s met 4GB aan videogeheugen hebben samen nog steeds 4GB, omdat de inhoud van beide geheugensets overeen moet komen. Met DX12 wordt 1 + 1 eindelijk 2 en liggen hoge resoluties en het comfortabel weergeven van virtual reality binnen handbereik. Al deze mooie verbeteringen maken de weg vrij voor meer grafisch geweld. Square Enix geeft ons een voorproefje met de indrukwekkende Witch Chapter 0 [cry]-demo, ter promotie van Final Fantasy 15. Dit is hoe 63 miljoen polygonen er uitzien.

Binnenkort in een pc of Xbox One bij jou in de buurt

DirectX 12 is alleen beschikbaar voor Windows 10, maar de lopende aanbieding voor bezitters van Windows 7 en 8 om gratis te upgraden maakt die beperking een stuk beter te behappen. Minder duidelijk is welke videokaarten de nieuwe api gaan ondersteunen. Nvidia stelt dat de GTX 900-serie de enige is die DX12 volledig ondersteunt, maar dat klopt niet helemaal. DirectX is naast een programmeerlaag ook een standaard. Technieken die helpen bij het renderen van beelden worden vastgelegd in zogenaamde Feature Levels. Als een videokaart officieel DirectX 11 ondersteunt, is het best mogelijk dat de chip meer kan dan wat de Feature Level voor DX11 voorschrijft. Om het nog ingewikkelder te maken voldoen sommige kaarten van de GTX 900-serie wel aan 12_1, maar niet 12_0.

Het belangrijkste om te weten is dat alle kaarten vanaf de Nvidia GeForce 400-serie en de AMD HD 7000-serie DirectX 12 in enige mate ondersteunen. Ook met oudere kaarten ga je dus een efficiënter gebruik van de processor zien, met een betere framerate tot gevolg. Qua Multiadapter en andere tweaks vallen ze waarschijnlijk buiten de boot. Ook de nieuwste videokaarten zullen niet direct al het moois van DirectX 12 kunnen gebruiken. De games moeten het namelijk zelf ook ondersteunen. Deus Ex: Mankind Divided en Ashes of the Singularity worden de eerste games die de speciale features van DirectX 12 gebruiken.

None

Tot slot een lichtpuntje voor Xbox One-bezitters. De console die regelmatig op grafisch vlak het onderspit moet delven tegen de PlayStation 4, wordt ook voorzien van DirectX 12. Als je nu uitzinnig van vreugde door de kamer stuitert in de veronderstelling dat alle Xbox One-games binnenkort op 1080p draaien, moeten we je teleurstellen. Een aantal optimalisaties van DX12 zijn al verwerkt in de aangepaste versie van DX11 waar de Xbox One mee werkt. Naar verwachting zal de console er iets op vooruit gaan – dankzij een asynchrone aansturing van de grafische rekenkernen en een efficiënter gebruik van de 32MB aan eSRAM – maar volgens lead engineer Balazs Torok van CD Projekt RED is het onwaarschijnlijk dat games een hogere resolutie gaan halen.

Het is nog moeilijk om te zeggen hoe groot de prestatiewinsten precies zullen zijn, omdat er buiten jubelende powerpoints nog weinig onafhankelijke vergelijkingen bestaan. Met DirectX 12 kun je er in ieder geval op rekenen dat games op een groot aantal systemen beter draaien. Dankzij de betere ondersteuning van meerdere processorkernen en een slimmere aanvoer van data naar de videokaart verwachten we vooral bij pc’s met langzamere processoren een merkbare sprong in prestaties. Ook in het topsegment gaan pc’s er op vooruit, door de verregaande optimalisaties bij twee of meer videokaarten. Als je een pc-gamer bent, is er dus een goede reden om 29 juli op de kalender te zetten.

Dit artikel delen:

Lees meer

Twintig minuten gameplay pc-versie Star Wars Battlefront Gearbox wil een nieuwe Duke Nukem-game maken
8

Reacties op: Api’s kijken – Wat hebben gamers aan DirectX 12?

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • None

    Leatherhide

    • 2 jaren geleden
    Ziet er goed uit maar had toch liever gezien dat Mantle as open standaard verder werd ontwikkeld zodat iedereen er van kon profiteren.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    serphilith

    • 2 jaren geleden
    Mantle is ontwikkeld zodat andere bedrijven hier op zouden verder gaan. AMD liet zien dat ook PC-Games op een dieper niveau met de GPU kan praten en heeft ervoor gezorgd dat Microsoft met DirectX 12 en Khronos met Vulcan opschoten. Mantle was nooit bedoeld als full-standard.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    DonnyLegend

    • 2 jaren geleden
    Dit dus, Mantle was puur om de vooruitgang in PC land weer aan de gang te krijgen. Microsoft was niet eens van plan om DX12 te maken, in ieder geval niet op het tempo waarop het nu gaat. Mantle is ook gewoon gedoneerd, wat AMD zelf natuurlijk weer een voorsprong geeft in DX12 omdat DX12 geloof ik een aangepaste versie is van Mantle met wat toevoegingen (theoretisch, in de praktijk moet het natuurlijk nog blijken).

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    Leatherhide

    • 2 jaren geleden
    Dat weet ik. Ik vind het alleen jammer dat ze niet verder zijn gegaan met het ontwikkelen van een open standaard. DX11 is puur Windows/Xbox One.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    Crazy Harry

    • 2 jaren geleden
    Dat is dus ook gebeurd met Vulcan, dat is voor een groot gedeelte Mantle.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    XtraLinkUK

    • 2 jaren geleden
    Ik weet dat het een tech-demo is. Toch ben ik benieuwd hoe dichtbij we zijn t.o.v. de cinematics van World of Warcraft.

    Ik neem altijd dat cgi filmpje als voorbeeld, omdat het nog steeds de meest overtuigende cinematics zijn imo. En vanaf dat moment gedroomd heb van graphics zoals die van The Witcher 3.

    En nu ik dit zie, wat eigenlijk niet onmogelijk is op een character in een RPG zoals The Witcher 3, geloof ik dat we er eindelijk zijn. In-game filmpjes gaan al naadloos overin gameplay. Nu nog CGI kwaliteit, wat eindelijk werkelijkheid is geworden vind ik.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • None

    Helios

    • 2 jaren geleden
    Interessant artikel en goed te volgen voor een hardware-leek als ik. Wist altijd wel dat DirectX belangrijk was, maar had niet echt een duidelijk beeld waarom nu precies.

    Alleen ook geleerd dat m'n pc wel weer eens aan vernieuwing toe is, met m'n AMD HD 6850 ;).

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • casualkiller

    • 2 jaren geleden
    DirectX, is, wel, … boeie.

    DirectX9 was de toekomst, directX 10 was de toekomst, directX 11 was de toekomst, DirectX12 is de toekomst. Natuurlijk is er vooruitgang maar vooral in videokaarten land en sales.

    Zeker als je weet hoeveel DX9 titles er nog uitkomen (onlangs nog : Resident Evil Revelations 2 volgens mij op PC ) , en hoe weinig DX10/11 titles er zijn ( ja wel supported maar niet 'exclusief' )

    DirectX is vooral een buzzwoord.

    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.

 

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.