Lad os indse det: DirectX 11 og OpenGL bliver lidt gamle. DirectX 11 blev introduceret med Windows 7 tilbage i 2009, og OpenGL 4.0 fulgte et år senere. I softwareår er disse teknologier nu gamle, og den nuværende afgrøde af hardware, som de kører, var ikke engang på tegnebrættet, da disse grafiske API'er blev frigivet. I betragtning af denne åbenlyse afbrydelse, hvad gør branchen for at få med tiden? Vi kigger nærmere på den nærmeste fremtid og ser, men lad os først forklare, hvad en API er, og hvilken funktion den tjener til spil.
Hvad er en API?
En API eller applikationsprogrammeringsgrænseflade er et sæt protokoller og værktøjer, der bruges til at opbygge software. Grafik-API'er er virkelig bare et specialiseret API bygget til at gøre generering af 3D-grafik lettere. Grafiske API'er gør det lettere at opbygge 3D-billeder, men de giver dig også mulighed for at fortælle API'en om at gøre noget (f.eks. Tegne et rektangel) og på sin side lade API'en derefter kommunikere med hardware om, hvordan man skal udføre denne opgave. Dette er hovedårsagen til, at så mange forskellige GPU'er med specialiseret hardware alle kan køre de samme spil. Uden eksistensen af en API, ville det samme spil blive skrevet på forskellige måder for at kommunikere med hvert specifikt sæt hardware. Dette vil begrænse hardwareproducenter kraftigt og øge omkostningerne ved bygningsspil kraftigt, en omkostning, der i sidste ende ville blive videregivet til slutforbrugeren.
For at gøre forklaringen ovenfor lidt lettere at forstå bruger jeg en analogi: Tænk på en API som byggeplads manager. Hans eller hendes job er at tage arkitektens idé og nedbryde den, planlægge, hvad besætningerne skal være hvor og hvornår, og sikre, at alle er på samme side om, hvad der skal gøres.

Brugte grafiske API'er i øjeblikket
Nu hvor vi forstår et grafisk API-job, kan vi se nærmere på den aktuelle lineup. Den største aktør på markedet i dag er Microsofts DirectX, der blev introduceret helt tilbage i 1995. Den er blevet opdateret flere gange siden dens frigivelse og er inkluderet i Microsofts Windows-operativsystem. DirectX er det grafiske API, som stort set alle spil, der frigives til pc, understøtter. Faktisk er det så almindeligt, at det virkelig er standarden til pc-spil i dag. DirectX er eksklusivt til Windows og Microsoft-produkter, som desværre gør det til et meget lukket system. Næste på linje er OpenGL, det eneste store open source-grafik-API. OpenGL blev udgivet i 1992 og er multiplatform, hvilket betyder, at det fungerer med flere operativsystemer, herunder Windows, Linux og Mac OS. Endelig har vi den nyeste grafik-API, Mantle. Mantle blev udviklet i 2013 gennem et partnerskab mellem AMD og Dice. Mantel er tilgængelig på Windows og kun til AMD GPU'er.

Billedkilde; Billedkredit: Intel
DirectX 12
DirectX 12 forventes at blive frigivet med Windows 10 i efteråret, og mange nye forbedringer bliver vist. En af de store forbedringer er meget bedre multi-threading support. Mere af arbejdet er spredt over flere kerner på CPU'en, hvilket giver mulighed for meget bedre og mere effektiv CPU-udnyttelse. Mange gange har DirectX 11 kun en kerne af CPU'en fuldt ud maksimeret, mens andre kerner sidder i nærheden af inaktivitet. DirectX 12 lover at sprede denne arbejdsbyrde over CPU-kernerne mere jævnt, hvilket giver spilene meget mere CPU-strøm at arbejde med. Den næste store forbedring, der er lovet af DirectX 12, er evnen til at håndtere mange flere trækopkald. Et lodtrækning sker, når som helst spillemaskinen ønsker at tegne noget på skærmen. Kravet til masser af lodtrækninger er generelt meget beskatning af CPU'en. DirectX 12 formodes at være i stand til at håndtere op til 600.000 lodtrækninger. For at sætte dette i perspektiv kunne DirectX 9 kun håndtere 6.000 uafbrudte opkald eller 1/100 af det, som DirectX 12 vil være i stand til.
I årevis har det nu været muligt at køre flere GPU'er i SLI / Crossfire-tilstand. En af de store begrænsninger var imidlertid, at VRAM, der var indbygget i kortene, ikke stak sammen for at skabe en stor, kontinuerlig pool. For eksempel, hvis du har to GPU'er hver med 2 GB VRAM, havde du stadig kun 2 GB VRAM, fordi hvert kort skulle have de samme oplysninger gemt i det. DirectX 12 håber at løse dette problem ved hjælp af AFR eller alternativ rammegivelse. I stedet for hver GPU, der gengiver en del af hver ramme, gengiver GPU'erne nu i stedet en hel ramme hver. Dette tillader, at VRAM på hvert kort bruges uafhængigt, og forhåbentlig tillader, at kort med mindre mængder VRAM er levedygtige til spil i et godt stykke tid. Der er meningen, at der skal være mange andre nye funktioner inkluderet i DirectX 12 for at skubbe spilgrafik videre end nogensinde før. Imidlertid er Microsoft stadig temmelig hysse ved hvad disse nye funktioner er. Vi vil forhåbentlig vide mere om dem, snart frigørelsen af API nærmer sig.

Billedkilde; Billedkredit: nVidia GeForce
Vulkan
Der er ikke så meget kendt om Vulkan som der er om DirectX 12, som det netop blev annonceret på GDC 2015. Det, vi ved, er, at producenterne af OpenGL, Khronos Group, faldt navnet glNext til fordel for Vulkan. Vulkan ser ud til at være afledt af Mantle, som jeg nævnte tidligere i artiklen. Derudover ser det ud til, at AMD bringer de bedste dele af Mantle til bordet for Vulkan i et partnerskab med Khronos Group. Vulkan formodes at have mange af de samme fordele ved DirectX 12, men det er ikke bundet til en enkelt platform som Windows. Det vil i stedet være tilgængeligt på mange forskellige platforme, herunder Linux og endda mobile enheder. Vulkan-driverne til både Windows og Linux vil være helt open source i modsætning til DirectX. Vulkan vil forbedre multi-threading og derfor gøre meget bedre brug af den CPU-magt, der er tilgængelig i dag, ved at sprede arbejdsbyrden over flere CPU-kerner. Som tidligere nævnt vil reduktion af belastningen på CPU'en give mulighed for, at GPU'er ikke flaskehalses så let som de er nu. Dette skulle give et ret betydeligt fremskudt løft under spil. Kilde 2, som for nylig blev annonceret af Valve, vil være den første nye spilmotor, der fuldt ud understøtter Vulkan, selvom jeg er sikker på, at mange flere vil blive annonceret i den nærmeste fremtid. Dota 2, et spil, der er kendt for at være CPU-intensivt, blev vist, der kører i kilde 2 med den nye Vulkan API ved hjælp af Intels integrerede grafik på CPU'en. Dette er noget, der bestemt ikke ville have været ønskeligt under DirectX 11, men med Vulkan så det ud til, at spillet opretholdt en rimelig billedhastighed igennem. Dan Baker, der er en udvikler af Oxide-spil, gik endda så langt for at sige, at "indtil GPU-producenterne samler deres handling og gør GPU'er ti gange hurtigere, end vi har nu, kan vi ikke maksimere CPU'en". Dette er gode nyheder for folk, der kører langsommere CPU'er, eller som har en masse GPU-hestekræfter i øjeblikket, fordi det vil betyde meget bedre ydelse er opnåelig på det samme sæt hardware.

Billedkilde; Billedkredit: Khronos
Hvad betyder det for fremtiden for spil?
Nå, i et godt længe er GPU-strøm nu steget meget hurtigere end CPU-strøm. For fem år siden erklærede Intel endda, at nogle GPU'er var 14 gange hurtigere end deres helt egne CPU'er. Disse tests blev udført ved hjælp af en nVidia GTX 280 vs en i7 960 Intel CPU - nu betragtet som relativt forældet hardware. Gabet mellem en nVidia GTX Titan X (eller endda en nVidia GTX 980) og det nuværende mainstream CPU-kraftcenter - Intel i7-4790k CPU - skulle være meget større. Pointen jeg prøver at gøre er, at vi begynder at se flere og flere spil ramme en væg i ydelse på grund af CPU'en. Spørg nogen med en skærm med høj opdateringshastighed, hvor svært det er at opretholde 100 + fps med aktuelle CPU'er i nogle spil. Helt ærligt talt ville det kun blive vanskeligere uden disse nye API'er og deres evne til at udnytte CPU-strømmen mere effektivt. Indførelsen af disse nye API'er kan betyde et stort stigning i ydelsen for de fleste mennesker. Desuden vil det også give udviklere mulighed for at bygge meget mere CPU-intensive spil, end vi har nu. Forestil dig for eksempel et spil som Assasins Creed, der har tusinder af NPC'er på skærmen ad gangen, der alle interagerer med hinanden og din karakter, mens du strejfer om en by. Eller spil som Star Citizen, hvor du har brug for en meget meget stærk CPU for at få enhver form for stabil og acceptabel billedhastighed, kan i den nærmeste fremtid kræve en gennemsnitlig CPU i bedste fald og en stærk GPU for at holde en dejlig solid 60fps.
I sidste ende er dette en meget spændende tid at være en spiller. Når disse nye grafiske API'er frigives, ser vi måske bare det største spring i gaming-teknologi på længe. Lad os bare håbe, at disse API'er kan leve op til den hype, de allerede har opbygget for sig selv.






