Ashes of the Singularity review: DirectX 12 getest

262 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Testsysteem
  3. 3. DirectX 12 prestaties: AMD
  4. 4. DirectX 12 prestaties: Nvidia
  5. 5. Multi-GPU schaling
  6. 6. Multi-GPU: R9 Fury X en GTX 980 Ti 
  7. 7. Multi-GPU: R9 390X en R9 380
  8. 8. Multi-GPU: GTX 980 en GTX 960
  9. 9. Conclusie
  10. 262 reacties

Inleiding

We horen al tijden over DirectX 12, maar games die hier ondersteuning voor bieden, hebben lang op zich laten wachten. Ashes of the Singularity is het eerste spel met volledige ondersteuning hiervoor, inclusief de mogelijkheid om totaal verschillende videokaarten (van verschillende merken!) in hetzelfde systeem te gebruiken. Wij hebben van de mogelijkheid gebruik gemaakt om dit aan een test te onderwerpen. Lees verder voor de resultaten. 

Vorig jaar kwam Windows 10 uit, en vanuit het perspectief van games was de belangrijkste innovatie hierin DirectX 12, dat talloze verbeteringen biedt. De belangrijkste hiervan zijn minder driver overhead, 'asynchrone' shaders en een veel betere implementatie van multi-GPU. We zullen deze kort een voor een bespreken.

Allereerst de lagere driver overhead. Microsoft heeft geprobeerd bij DirectX 12 zo 'low-level' mogelijke instructies te gebruiken, net zoals AMD bij Mantle deed. Hierdoor kunnen de kaarten veel efficiënter werken. Het is vergelijkbaar met gewone programmeertalen voor CPU's: een programma zal veel sneller werken als het in Assembler is geprogrammeerd, dan in C++. Dit komt doordat Assembler veel dichter bij de machinetaal van de computers ligt dan C++, waarvoor een vertaalslag nodig is.

Ten tweede hebben we de asynchrone shaders, waar je hier een uitgebreid artikel over kan vinden. Traditioneel zetten videokaarten taken in een wachtrij en beginnen ze pas als ze niets meer te doen hebben met de volgende taak. Omdat een videokaart bestaat uit meerdere onderdelen en lang niet elke taak alle onderdelen even zwaar belast, worden videokaarten vaak niet optimaal gebruikt. Met asynchrone shaders kunnen ongebruikte rekenunits gebruikt worden om taken die in de wachtrij staan uit te voeren. 

Ten slotte de betere implementatie van de multi-GPU mogelijkheid. DirectX 12 kan zelf verschillende videokaarten aansturen, zonder hulp van de drivers. SLI en CrossFire worden hiermee overbodig gemaakt, en daarmee ook de techniek die zij hierbij gebruikten: alternate frame rendering (AFR). Met AFR neemt de ene videokaart even frames voor zijn rekening en de andere oneven frames. Het grote nadeel van alternate frame rendering is dat je nooit weet wanneer een videokaart klaar is met het renderen van een frame. Je krijgt dus soms 'microstuttering'. In plaats daarvan gebruikt DirectX 12 split-frame rendering (SFR), waarbij elke videokaart een deel van het beeld rendert.  

Hierdoor hoef je niet meer dezelfde videokaart of GPU te gebruiken bij een multi-GPU instelling. Bij AFR is het belangrijk dat de videokaarten ongeveer even snel zijn, om microstuttering te voorkomen, maar bij SFR is dat geen issue meer. Sterker nog, met DirectX 12 kan je een videokaart van Nvidia combineren met een van AMD, en daarmee games spelen.

Een ding hebben we nog niet kunnen testen, door tijdgebrek: DirectX 12 biedt naar verluidt ook betere mogelijkheden om gebruik te maken van meerdere CPU cores. Het effect van het inzetten van meer (of minder) cores zullen we in een aparte publicatie op een later tijdstip nog bespreken.

In deze review vergelijken we de benchmarkresultaten van enkele videokaarten in DirectX 11 en 12. We kijken of de multi-GPU van DirectX 12 betere prestaties biedt dan CrossFire en SLI. Ook testen we hoe de multi-GPU het doet wanneer je twee verschillende videokaarten gebruikt. 

0