Låt oss inse: DirectX 11 och OpenGL blir lite gamla. DirectX 11 introducerades med Windows 7 tillbaka 2009 och OpenGL 4.0 följde ett år senare. Under mjukvaruår är dessa tekniker nu forntida, och den nuvarande skörden av hårdvara som de kör var inte ens på tavlan när dessa grafiska API: er släpptes. Med tanke på denna uppenbara bortkoppling, vad gör branschen för att få med tiden? Vi ska titta på den närmaste framtiden och se, men för att börja låt oss först förklara vad ett API är och vilken funktion det tjänar för spel.
Vad är ett API?
Ett API eller applikationsprogrammeringsgränssnitt är en uppsättning protokoll och verktyg som används för att bygga programvara. Grafik-API: er är egentligen bara ett specialiserat API byggt för att göra generering av 3D-grafik enklare. Grafik-API: erna gör att bygga 3D-bilder enklare, men de tillåter dig också att säga API: n att göra något (t.ex. rita en rektangel) och i sin tur låta API: n sedan kommunicera med hårdvaran om hur man kan utföra denna uppgift. Detta är det främsta skälet till att så många olika GPU: er med specialiserad hårdvara alla kan köra samma spel. Utan att det finns ett API skulle samma spel behöva skrivas på olika sätt för att kommunicera med varje specifik uppsättning hårdvara. Detta skulle kraftigt begränsa hårdvaruproduktionen och skulle avsevärt öka kostnaden för att bygga spel, en kostnad som i slutändan skulle överföras till slutkonsumenten.
För att göra förklaringen ovan lite lättare att förstå använder jag en analogi: Tänk på ett API som byggarbetschef. Hans eller hennes uppgift är att ta arkitektens idé och dela upp den, schemalägga vilka besättningar som måste vara var och när och se till att alla är på samma sida om vad som behöver göras.
För närvarande används API: er för grafik
Nu när vi förstår ett grafiskt API: s jobb, kan vi titta närmare på den aktuella uppställningen. Den största aktören på marknaden idag är Microsofts DirectX, som introducerades hela vägen tillbaka 1995. Det har uppdaterats flera gånger sedan det släpptes och ingår i Microsofts Windows-operativsystem. DirectX är det grafiska API som nästan alla spel som släpps för PC kommer att stödja. Det är faktiskt så vanligt att det verkligen är standarden för PC-spel idag. DirectX är exklusivt för Windows och Microsoft-produkter vilket tyvärr gör det till ett mycket stängt system. Nästa i raden är OpenGL, det enda stora öppna källkods-API: n. OpenGL släpptes 1992 och är multiplattform, vilket innebär att det fungerar med flera operativsystem inklusive Windows, Linux och Mac OS. Slutligen har vi det senaste grafiska API: et, Mantle. Mantle utvecklades 2013 genom ett partnerskap mellan AMD och Dice. Mantel är tillgänglig på Windows och endast för AMD GPU: er.
Bildkälla; Bilderkredit: Intel
DirectX 12
DirectX 12 kommer att släppas med Windows 10 i höst och många nya förbättringar prövas. En av de stora förbättringarna är mycket bättre stöd för flera trådar. Mer av arbetet är spridda över flera kärnor på CPU, vilket möjliggör mycket bättre och mer effektivt CPU-utnyttjande. Många gånger kommer DirectX 11 att ha endast en kärna på CPU: n helt maxad medan andra kärnor sitter nära viloläge. DirectX 12 lovar att sprida denna arbetsbelastning över CPU-kärnorna mer jämnt, vilket ger spelen mycket mer CPU-kraft att arbeta med. Nästa stora förbättring som lovats av DirectX 12 är förmågan att hantera många fler dragsamtal. Ett drag samtal händer när spelmotorn vill rita något på skärmen. Kravet på massor av samtal är i allmänhet mycket beskattande för CPU. DirectX 12 är tänkt att kunna hantera upp till 600 000 dragsamtal. För att sätta detta i perspektiv kan DirectX 9 bara hantera 6 000 dragsamtal eller 1/100: e av det som DirectX 12 kommer att kunna.
I flera år har köra flera GPU: er i SLI / Crossfire-läge varit möjligt. En av de stora begränsningarna var dock att VRAM-inbyggda korten inte staplade ihop för att skapa en stor, kontinuerlig pool. Om du till exempel har två GPU: er med 2GB VRAM hade du fortfarande bara 2 GB VRAM eftersom varje kort måste ha samma information lagrad i den. DirectX 12 hoppas kunna lösa detta problem med hjälp av AFR eller alternativ bildframställning. Istället för varje GPU-rendering av en del av varje ram, kommer GPU: er nu istället att göra en hel ram varje. Detta gör att VRAM på varje kort kan användas oberoende, och förhoppningsvis kan kort med mindre mängder VRAM vara livskraftiga för spel under en längre stund. Det är tänkt att det finns många andra nya funktioner som ingår i DirectX 12 för att driva spelgrafik längre än någonsin tidigare. Men Microsoft är fortfarande ganska hysskt om vad dessa nya funktioner är. Vi kommer förhoppningsvis att veta mer om dem snart när utgivningen av API närmar sig.
Bildkälla; Bildkredit: nVidia GeForce
Vulkan
Det finns inte så mycket känt om Vulkan som det finns om DirectX 12, som det just tillkännagavs vid GDC 2015. Vad vi vet är att tillverkarna av OpenGL, Khronos Group, tappade namnet glNext till förmån för Vulkan. Vulkan verkar härledas från Mantle, som jag nämnde tidigare i artikeln. Dessutom ser det ut som att AMD tar de bästa delarna av Mantle till bordet för Vulkan i ett samarbete med Khronos Group. Vulkan är tänkt att ha många av samma fördelar med DirectX 12, men det är inte bundet till en enda plattform som Windows. Det kommer istället att finnas tillgängligt på många olika plattformar, inklusive Linux och till och med mobila enheter. Vulkan-drivrutinerna för både Windows och Linux kommer att vara helt öppen källkod till skillnad från DirectX. Vulkan kommer att förbättra flertrådar och därför utnyttja den CPU-kraft som finns tillgänglig idag mycket bättre genom att sprida arbetsbelastningen över flera CPU-kärnor. Som tidigare nämnts, kommer att minska belastningen på CPU att GPU: er inte kan flaskhalsas så lätt som de är nu. Detta bör ge en ganska betydande framerate boost under spel. Källa 2, som nyligen tillkännagavs av Valve, kommer att vara den första nya spelmotorn som fullt ut stöder Vulkan, även om jag är säker på att många fler kommer att meddelas inom en snar framtid. Dota 2, ett spel känt för att vara CPU-intensivt, visade att det körs i Source 2 med det nya Vulkan API med Intels integrerade grafik på CPU. Detta är något som verkligen inte skulle ha varit önskvärt under DirectX 11, men med Vulkan verkade spelet upprätthålla en rimlig bildfrekvens hela tiden. Dan Baker, som är en utvecklare för Oxide-spel, gick till och med så långt att säga att "tills GPU-tillverkarna samlar sina handlingar och gör GPU: er tio gånger snabbare än nu, kan vi inte ta ut CPU: n". Detta är goda nyheter för personer som kör långsammare CPU: er eller som har en hel del GPU-hästkrafter för närvarande eftersom det kommer att betyda mycket bättre prestanda kan uppnås på samma hårdvara.
Bildkälla; Bildkredit: Khronos
Vad betyder detta för spelets framtid?
Nåväl, länge har GPU-kraft ökat mycket snabbare än CPU-strömmen. För fem år sedan uppgav Intel till och med att vissa GPU: er var 14 gånger snabbare än deras helt egen CPU. Dessa tester gjordes med en nVidia GTX 280 vs en i7 960 Intel CPU - nu betraktad som relativt föråldrad hårdvara. Klyftan mellan en nVidia GTX Titan X (eller till och med en nVidia GTX 980) och den nuvarande mainstream-CPU-kraftverket - Intel i7-4790k CPU - borde vara mycket större. Poängen jag försöker göra är att vi börjar se fler och fler spel träffa en vägg i prestanda på grund av CPU. Fråga alla med en hög uppdateringsfrekvensmonitor hur svårt det är att upprätthålla 100 + fps med aktuella CPU: er i vissa spel. Ärligt talat skulle det bara bli svårare utan dessa nya API: er och deras förmåga att använda CPU-kraften mer effektivt. Införandet av dessa nya API: er kan innebära ett stort steg i prestandan för de flesta. Dessutom skulle det också göra det möjligt för utvecklare att bygga mycket mer CPU-intensiva spel än vi har nu. Föreställ dig till exempel ett spel som Assasins Creed som har tusentals NPC: er på skärmen på en gång, alla interagerar med varandra och din karaktär medan du strövar om en stad. Eller spel som Star Citizen, där du behöver en väldigt mycket stark CPU för att få någon form av stabil och acceptabel bildhastighet, kan i en snar framtid kräva en genomsnittlig CPU i bästa fall och en stark GPU för att hålla en fin solid 60fps.
I slutändan är detta en mycket spännande tid att bli spelare. När dessa nya grafiska API: er släpps kan vi kanske bara se det största hoppet inom spelteknik på länge. Låt oss bara hoppas att dessa API: er kan leva upp till den hype de redan har byggt upp för sig själva.
