DirectX 12: De toekomst van PC gaming!

Door aercaen op woensdag 29 juli 2015 21:56 - Reacties (9)
CategorieŽn: Software, Technologie, Views: 4.293

Deze blog word geschreven uit het standpunt van een gamer, ik snap wel hoe games worden opgebouwd, maar ik ben
geen professionele game designer (ben nog iets veel beter, namelijk een SAP FICO analist).

Inleiding

Met de komst van Windows 10 vandaag vond ik het de beste tijd om eens te praten over DirectX 12, en zijn concurrent OpenGLVulkan. Er wordt nogal veel over gesproken dat beide het mogelijk gaan maken om meer uit minder hardware te halen. De focus van deze blog gaat zijn om een introductie te geven in DirectX 12. (Mogelijk zal ik op een later tijdstip een meer geavanceerde blog schrijven over dit onderwerp, maar nu zijn er teveel termen die ik zou moeten uitleggen om in detail te gaan)

Wat is nu een graphics API?

Een API (Application Programming Interface) is een interface welke door programmeurs kan worden gebruikt om makkelijk zaken binnen een platform aante spreken. In het geval van graphics API's geeft het toegang tot te grafische kaart. Het idee hierachter is dat het makkelijker word voor ontwikkelaars om de hardware aan te spreken. In plaats van voor elke grafische kaart apart
te optimaliseren, kunnen ze via een grafische API de game maken. En dan maken de grafische kaart fabrikanten hun producten compatibel met de API. Bij PC is dit een heel belangrijke reden waarom graphics API's worden gebruikt, want op dat platform zijn er veel verschillende hardware combinaties mogelijk.

AMD Mantle

Voordat ik begin over DirectX 12, moet ik toch even de trendsetter vermelden. En dit was AMD met Mantle. Mantle was een nieuwe graphics API welke als doel had om de CPU zoveel mogelijk te ontlasten. Dit zorgde ervoor dat je een mindere CPU kon aanvullen met krachtige GPU zonder al te veel performantie te verliezen in games. AMD heeft Mantle open source gemaakt in een poging om het aan populariteit te laten winnen. Spijtig genoeg heeft de marktleider (Nvidia) besloten
om zich eerder te focussen op DirectX 12 en heeft die nooit Mantle ondersteund. Met de komst van DirectX 12 en OpenGL Vulkan heeft AMD besloten om Mantle niet verder uit te bouwen (hier zou Nvidia iets van kunnen leren).

DirectX 12

Dus DirectX is een Graphics API (ook multimedia, but who cares :P) welke standaard word meegeleverd met Windows. DirectX 12 is de laatste iteratie welke met Windows 10 word gebundeld. Waar DirectX 10 in het kader stond van "please, koop Windows Vista" en DirectX 11 in het kader stond van Tesselation. Slaat de laatste versie van DirectX op het verminderen van overhead. Overhead is een logisch probleem dat voorkomt op PC omdat de software compatibel moet zijn
met heel uiteenlopende hardware. Buiten overhead maakt DirectX ook meer en beter gebruik van meerdere CPU cores.

Nieuw multi-GPU setup
Eťn van de grootste verbeteringen van DirectX 12 is dat er anders word omgegaan met systemen met meerdere grafische kaarten. Met DirectX 12 kan de ontwikkelaar elke grafische kaart apart aanspreken. Dit zorgt ervoor dat je totaal verschillende grafische kaarten kan laten samenwerken. En zelfs Nvidia en AMD grafische kaarten kunnen nu dus ook samen werken. Maar ook bijvoorbeeld de interne grafische kaart van een Intel kan samenwerken met een dedicated grafische kaart
om betere performantie te halen (en daar zit ik dan met mijn dure X99 processor welke geen interne GPU heeft :().
Al is dit een goede vooruitgang, er is wel ťťn keerzijde aan deze aanpak. Er is veel meer werk nodig voor de programmeur om dit soort multi-GPU setup ten volle te benutten. En in een wereld waar de PC port vaak word uitbesteed aan een klein team welke het zo snel mogelijk moet afwerken, kan dit ervoor zorgen dat meeste grote games het niet gaan ondersteunen.

Nieuwe hardware nodig?
Het leuke aan DirectX 12 is dat ook oudere hardware word ondersteund. Zo is bij Nvidia minimum een GPU uit de Fermi generatie nodig. Bij AMD, alle GPU's gebaseerd op GCN, en bij Intel alle Haswell generatie GPU's.
Maar er zijn ook specifieke functies welke enkel met grafische kaarten werkt welke DirectX 12 ondersteunen. Hier word het spijtig genoeg heel complex, zelf al staat op de doos DirectX 12 support betekend dit niet dat alles gaat werken. Dit is heel verwarrend en als je er meer informatie over wilt hebben zou ik ten zeerste aanraden om deze post van Werelds te lezen.


Xbox one: krijgt die ook iets?
Ook de Xbox one krijgt DirectX 12 alsook Windows 10. Maar er is al meermaals gezegd dat DirectX 12 niet voor dezelfde performanceverschillen gaat zorgen dan voor PC. De reden hiervoor is dat bij consoles de ontwikkelaars altijd voor dezelfde hardware programmeren. Dit is ook de hoofdreden waarom een console met veel minder grafische kracht toch heel mooie graphics op het scherm kan toveren. Wat DirectX 12 wel doet is ontwikkelaars de mogelijkheid geven om makkelijker
het ESRAM van de Xbox one aan te spreken. Dit zou in theorie een performance boost moeten geven, al denk ik dat we dit nog zullen moeten afwachten.

OpenGL Vulkan

OpenGL Vulkan is de laatste versie van OpenGL, welke door de Khronos Group word onderhouden. Vulkan maakt ook hergebruik van zaken welke in Mantle zijn geÔmplementeerd. En kan dus ook aanzien worden als de opvolger van Mantle. Vulkan heeft ook als doel om net als DirectX overhead te verminderen, alsook om meerdere CPU cores beter te benutten.
In tegenstelling tot DirectX, is OpenGL open source en bruikbaar op alle platformen (Windows, Mac OS, Linux, enz...).

Conclusie

Sinds AMD de trend heeft ingezet om overhead te verlagen, zijn alle graphics API gevolgd. Dit heeft positieve gevolgen voor alle PC gamers. Spijtig genoeg zijn er voor het moment buiten iets als 3DMark nog geen games welke DirectX 12 ondersteunen. Hierdoor neem ik nog een "wait and see" houding aan. Niet dat ik twijfel aan de mogelijkheden welke DirectX 12 biedt. Maar eerder aan of dit wel goed gaat worden geÔmplementeerd door game developers.


Footnote
Deze blog heeft als doel om game technologieŽn, als er interesse is, in de spotlight te zetten.
Indien je een suggestie hebt voor een onderwerp, kan je mij altijd laten weten via de reacties of PM.
De huidige planning voor blogs ziet er zo uit (staat verre van vast):
  • Terugblik op Gamescom 2015
  • MegaTexture: De misstap van John Carmack?
  • 3DFX: Wat ging er mis?
  • Nvidia PhysX: een waardevolle gimmick?
  • Game termen uitgelegd: Textures, shaders en polygonen
Voor meer informatie over dit onderwerp raad ik aan de volgende zaken eens te lezen:
http://blogs.msdn.com/b/d...014/03/20/directx-12.aspx
https://www.khronos.org/vulkan

Volgende: Terugblik op Gamescom 2015 08-'15 Terugblik op Gamescom 2015

Reacties


Door Tweakers user Timons106, woensdag 29 juli 2015 22:16

Heeft DirectX 12 al direct voordeel bij huidige games? Ik ga naar CampZone vrijdag en merk dat 4K samen met de GTX 980 nog niet echt optimaal is, dus wil het laatste beetje performance er wel uit kunnen trekken als het ware :p.

Ik moet alleen even uitzoeken of ik zo naar Windows 10 kan upgraden aangezien ik ook OSX er op draai (Hackintosh).

Door Tweakers user aercaen, woensdag 29 juli 2015 22:40

Timons106 schreef op woensdag 29 juli 2015 @ 22:16:
Heeft DirectX 12 al direct voordeel bij huidige games? Ik ga naar CampZone vrijdag en merk dat 4K samen met de GTX 980 nog niet echt optimaal is, dus wil het laatste beetje performance er wel uit kunnen trekken als het ware :p.

Ik moet alleen even uitzoeken of ik zo naar Windows 10 kan upgraden aangezien ik ook OSX er op draai (Hackintosh).
Neen, zoals ook in blog staat gaan huidige games nog niet werken met DirectX 12. Dit was ook het geval met alle voorgaande versies van DirectX. De game developer moet het implementeren. En een al uitgebrachte game heeft dit nog niet vaak gedaan.
Persoonlijk verwacht ik zefls niet dat er veel games zijn dat het volledig gaan ondersteunen dit jaar. Mogelijk zullen er wel games zijn die zullen zeggen dat ze DIrectX 12 ondersteuen. Maar die zullen denk ik niet alle features meteen gebruiken (zoals de nieuwe approach voor multi-GPU). Voor die soort features zullen ze iets meer werk moeten verzetten om te implementeren.

Door Tweakers user LopendeVogel, donderdag 30 juli 2015 05:54

Timons106 schreef op woensdag 29 juli 2015 @ 22:16:
Heeft DirectX 12 al direct voordeel bij huidige games? Ik ga naar CampZone vrijdag en merk dat 4K samen met de GTX 980 nog niet echt optimaal is, dus wil het laatste beetje performance er wel uit kunnen trekken als het ware :p.

Ik moet alleen even uitzoeken of ik zo naar Windows 10 kan upgraden aangezien ik ook OSX er op draai (Hackintosh).
Nou een stom voorbeeld, zelf deed ik een lange tijd coins minen, wegens tijdgebrek bblablabla ermee gestopt. Echter was ik wel benieuwd nav deze blog of er verschil in snelheid zou zitten.
Ik ben van 1.9/2.1mhash op 1 kaart naar 2.7 gegaan, dat is een drastische verbetering.
Minen is voorheen op meerdere windows 7 systemen gedaan (oftewel het was geen fout in toevallig mijn windows).
Nu weet ik uiteraard niet of dat door een directx komt, maar ik zou niet weten wat er anders is aan windows 10 in vergelijking met 7 op gebied van grafische krachten.

Maar goed dat is denk ik een totaal ander proces dan bij gamen, daar waar het bij minen niet bepaald om de miner gaat maar voornamelijk om de hardware ( optimalisatie van de miner kan je zelf doen). Bij gamen ben je meer afhankelijk van de producent van je game, indien de game beperkt is dankzij een oudere directx versie zul je niet veel verschil merken lijkt mij. Jij kan neem ik aan niet zelf de game gaan optimaliseren voor directx 12 xd.
Zelfde als met games die bijv maar 1 core (cpu) kunnen aanspreken, kan je hoog en laag springen met 8 cores maar als de game er niks mee doet heb je er nog niks aan. Volgens mij zit het met directx hetzelfde, kortom ga er maar niet vanuit dat je verschil gaat merken

[Reactie gewijzigd op donderdag 30 juli 2015 05:58]


Door Tweakers user demonic, vrijdag 31 juli 2015 11:59

Ik hoop heel erg dat alle gamedev's overstappen op OpenGL. Dit zou zoveel beter zijn als DX12.

Dan is er eindelijk keuze vrijheid voor de gamers om te kiezen welk OS ze willen gebruiken, zonder voor dual-boot te moeten kiezen.

Ik vrees alleen dat dat niet gaat gebeuren :(

Door Tweakers user SinergyX, vrijdag 31 juli 2015 12:51

demonic schreef op vrijdag 31 juli 2015 @ 11:59:
Ik hoop heel erg dat alle gamedev's overstappen op OpenGL. Dit zou zoveel beter zijn als DX12.

Dan is er eindelijk keuze vrijheid voor de gamers om te kiezen welk OS ze willen gebruiken, zonder voor dual-boot te moeten kiezen.

Ik vrees alleen dat dat niet gaat gebeuren :(
Ook als er gewoon ondersteuning is, is het maar de vraag of mensen meegaan. WoW bijvoorbeeld heeft al jaren een osx client, Linux wine draait ook aardig (opengl support).

Nadeel, enige cijfers die ooit 'redelijk' konden worden vastgesteld was rond de 6-8% van WoW spelers zit op OSX, gebaseerd op de splitsing van OS in algemeen en de tekst dat er een 'groter' deel van de totaal OSX-bezitters WoW spelen dan Windows-bezitters (enigszins logisch natuurlijk). En dat is een game die al jaren lang de 'standaard' is van MMO's.

Door Tweakers user demonic, vrijdag 31 juli 2015 14:59

SinergyX schreef op vrijdag 31 juli 2015 @ 12:51:
[...]

Ook als er gewoon ondersteuning is, is het maar de vraag of mensen meegaan. WoW bijvoorbeeld heeft al jaren een osx client, Linux wine draait ook aardig (opengl support).
Maar om iedere keer te gaan dual-booten als je wil gamen zie ik niet zitten.
Het liefst zou ik linux draaien, en voor WoW zou dat misschien werken, maar wanneer ik een ander spel wil gaan doen, moet ik weer afsluiten en opnieuw opstarten in windows. Dat schiet toch niet op. Daarom draai ik windows. puur vanwege de games.

Door Nature, zaterdag 1 augustus 2015 00:03

Zolang ik niet een enkele benchmark van een game heb gezien geloof ik niet dat er ook maar iets zal verbeteren, is het ook niet wel okť nu? Nvidia heeft wel goede DX11 en Linux drivers.
Maar ik ben wel benieuwd naar de eerste benchmarks, alleen factor 8 x performance zoals sommige hopen, nah... denk het niet. :)

Door HENK, zaterdag 1 augustus 2015 09:36

De groei/pupulariteid van OpenGL Vulkan moet een beetje vanauit steam(OS) komen denk ik. Gelukkig zie ik daar al steeds meer game multi OS Game's voorbijkomen.

Door Tweakers user Milmoor, zaterdag 1 augustus 2015 09:38

De basis van dx12 (b)lijkt Mantle te zijn. Zelfs in de documentaire zitten letterlijke copy-paste stukken. Dus AMD heeft dat heel goed gedaan. Er is nu een DirextX die veel minder zwaar voor de cpu is. En dat is/was precies hun zwakke punt.

[Reactie gewijzigd op zaterdag 1 augustus 2015 09:38]


Reageren is niet meer mogelijk