Wat is het verschil tussen DirectX 11 en DirectX 12?
DirectX is een verzameling API's of interfaces voor toepassingsprogrammering die door software worden gebruikt om multimedia-inhoud weer te geven en te communiceren met grafische hardware. De belangrijkste component-API van DirectX, Direct3D, verwerkt de communicatie tussen software en grafische hardware. Omdat alle hardware anders is, versnelt het gebruik van een gestandaardiseerde bibliotheek met functies en oproepen om te communiceren met uw grafische kaart de ontwikkeling van games. Dit wordt hardware-abstractie genoemd en het is de hoofdtaak van de API.
Denk aan auto's: als u één auto kunt besturen, kunt u ze vrijwel allemaal besturen. De gas- en rempedalen zitten op dezelfde plaats en het stuurwiel draait in dezelfde richting en deuren openen naar buiten. Er kunnen enkele kleine verschillen zijn in niet-kritieke functies zoals de radio, maar over het algemeen weet u wat u kunt verwachten. DirectX en Direct3D zijn zo, waardoor ontwikkelaars met behulp van dezelfde hulpmiddelen kunnen communiceren met een breed scala aan hardware. En aangezien de meeste gameontwikkelaars de standaardbibliotheek van Direct3D gebruiken, kunnen wijzigingen in de API gevolgen hebben voor zowel gamers als coders.
Wat is er nieuw in DirectX 12?
Elke belangrijke update van DirectX en Direct3D brengt nieuwe functies en ontwikkelingen met zich mee. Direct3D 12 bracht echter enkele bijzonder belangrijke veranderingen met zich mee. Het zou zelfs een nieuw gebied van low-level grafische API's kunnen inluiden die de manier waarop games worden ontwikkeld zal veranderen.
Hardware-abstractie op lager niveau
DirectX 12 laat ontwikkelaars nu dichter bij het 'metaal' van de grafische hardware van hun gebruikers komen, en biedt toegang tot functies die eerder niet beschikbaar waren voor ontwikkelaars. Het blootstellen van hardware op een lager niveau betekent dat bekwame ontwikkelaars efficiëntere code kunnen schrijven die sneller wordt uitgevoerd. Ontwikkelaars kunnen met name de optimalisatie verbeteren met snellere multi-threadprestaties en efficiënter CPU-gebruik. Dit kan mogelijk optimalisaties op laag niveau mogelijk maken die vergelijkbaar zijn met die we zien in console-gaming waarbij games zijn afgestemd op extreem specifieke middenklasse hardware, waardoor prestaties worden nagestreefd die onmogelijk zouden zijn zonder dergelijke hyperspecifieke optimalisaties.
Eerder bood DirectX 11 slechts een vrij hoog niveau van hardware-abstractie, wat het coderingsproces enorm vereenvoudigt. Sterker nog, dat is het hele idee achter wat hardware-API's zo krachtig maakt. Maar het betekende ook dat de mogelijkheden voor het afstemmen van code op specifieke hardwarekenmerken minder vaak voorkwamen. Microsoft's Blog voor ontwikkelaars biedt een aantal geweldige inzichten in hoe DirectX 12 dit precies tot stand brengt.
Verbeterde Multicore-prestaties
In de afgelopen jaren zijn gamers gaan accepteren dat multicore-CPU's niet zo nuttig zijn voor gaming. Games vertrouwen in plaats daarvan op snelle single-threaded prestaties. Dit gebeurt gedeeltelijk omdat DirectX 11 niet zoveel parallellisatie toestaat. Meerdere CPU-threads kunnen tegelijkertijd tekenopdrachten verzenden. Ze zullen echter nog steeds allemaal één voor één in een wachtrij worden verwerkt. DirectX 12 tilt die beperking op, waardoor multicore-CPU's tegelijkertijd instructies naar de GPU kunnen sturen, waardoor de deur opengaat voor betere prestaties op multicore-processors.
Tekenen Oproep Overhead Reduction
Onder DirectX 11 wordt een aanzienlijk deel van de CPU besteed aan het interpreteren van API-instructies in plaats van het uitvoeren van gamecode. DirectX 12 verlaagt de API-overhead, waardoor berekeningsbronnen vrijgemaakt worden voor het uitvoeren van spelcode. Dit betekent dat CPU-gelimiteerde spellen betere prestaties zouden kunnen zien, omdat hun CPU-kracht wordt vrijgegeven om de spelcode af te handelen. De meeste games zijn momenteel niet CPU-beperkt, maar het is mogelijk dat nieuwere games deze envelop verder zullen pushen.
Expliciete Multiadapter
DirectX 12 kan meerdere GPU's (AKA "display-adapters") combineren in een enkele logische eenheid. Met deze functie, Explicit Multiadapter genaamd, kunnen meerdere GPU's worden geïnstrueerd door software zoals een enkele GPU. Met DirectX 12 kan de geïntegreerde GPU op uw machine bijvoorbeeld een label vormen voor uw afzonderlijke GPU, waardoor deze zijn eigen verwerkingskracht krijgt. Grotere API-ondersteuning kan ook een grotere betrouwbaarheid en efficiëntie betekenen in multi-GPU SLI / CrossFire-setups. In het testen van Microsoft met behulp van geïntegreerde grafische afbeeldingen in combinatie met discrete grafische afbeeldingen zorgde dit voor een kleine maar opvallende voorsprong in benchmarks.
Hoeveel doet DirectX 12 voor Gamers?
Zoals veel incrementele verbeteringen, zullen gamers geen dagelijkse verschillen zien tussen DirectX 11 en DirectX 12. De nieuwe functies brengen geen nieuwe weergave-opties die gebruikers wow. Noch ziet u een 100 FPS-sprong tussen de twee normen. Maar deze efficiëntiewinst zal uiteindelijk leiden tot betere prestaties op minder krachtige hardware, waardoor de pc beter stroom krijgt zonder de hardware te upgraden.