Anonim

La oss innse det: DirectX 11 og OpenGL blir litt gamle. DirectX 11 ble introdusert med Windows 7 i 2009, og OpenGL 4.0 fulgte et år senere. I programvareår er disse teknologiene nå eldgamle, og den nåværende beskjeden av maskinvare som de kjørte, var ikke en gang på tegnebrettet da disse grafiske API-ene ble utgitt. Gitt denne åpenbare frakoblingen, hva gjør bransjen for å få tak i tidene? Vel, vi tar en titt på den nærmeste fremtiden og ser, men for å begynne, la oss først forklare hva et API er og hvilken funksjon det tjener til spill.

Hva er et API?

Et API eller applikasjonsprogrammeringsgrensesnitt er et sett med protokoller og verktøy som brukes til å bygge programvare. Grafikk-API-er er egentlig bare et spesialisert API bygget for å gjøre generering av 3D-grafikk enklere. Grafikk-API-er gjør bygging av 3D-bilder enklere, men de lar deg også fortelle API-en om å gjøre noe (f.eks. Tegne et rektangel) og på sin side la API-en deretter kommunisere med maskinvaren om hvordan du kan gjøre om å fullføre denne oppgaven. Dette er hovedgrunnen til at så mange forskjellige GPU-er med spesialisert maskinvare alle kan kjøre de samme spillene. Uten eksistensen av en API, ville det samme spillet måtte skrives på forskjellige måter for å kommunisere med hvert spesifikt maskinvaresett. Dette vil begrense maskinvareprodusenter sterkt og vil øke kostnadene for å bygge spill, en kostnad som til slutt vil bli gitt videre til sluttforbrukeren.

For å gjøre forklaringen over litt enklere å forstå vil jeg bruke en analogi: Tenk på en API som byggeplassleder. Hans eller hennes jobb er å ta arkitektens ide og bryte den ned, planlegge hva mannskapene trenger å være hvor og når, og sikre at alle er på samme side om hva som må gjøres.

Figur 1: Grafisk representasjon av hvordan et API fungerer

For øyeblikket brukte APIer for grafikk

Nå som vi forstår en grafisk API-jobb, kan vi se nærmere på den nåværende oppstillingen. Den største aktøren i markedet i dag er Microsofts DirectX, som ble introdusert helt tilbake i 1995. Den har blitt oppdatert flere ganger siden lanseringen, og er inkludert i Microsofts Windows-operativsystem. DirectX er den grafiske API-en som stort sett alle spill som slippes for PC vil støtte. Det er faktisk så vanlig at det virkelig er standarden for PC-spill i dag. DirectX er eksklusivt for Windows og Microsoft-produkter, som dessverre gjør det til et veldig lukket system. Neste i rekken er OpenGL, den eneste store open source-grafikk-API-en. OpenGL ble utgitt i 1992 og er multiplattform, noe som betyr at den fungerer med flere operativsystemer, inkludert Windows, Linux og Mac OS. Endelig har vi den nyeste grafikk-API-en, Mantle. Mantle ble utviklet i 2013 gjennom et partnerskap mellom AMD og Dice. Mantle er tilgjengelig på Windows, og bare for AMD GPU-er.

Figur 2: Sammenligning av DirectX 12 mot DirectX 11
Bildekilde; Bildekreditt: Intel

DirectX 12

DirectX 12 kommer til å bli utgitt med Windows 10 i høst, og mange nye forbedringer blir spionert. En av de store forbedringene er mye bedre støtte for flere tråder. Mer av arbeidet er spredt over flere kjerner på CPU, noe som gir mye bedre og mer effektiv CPU-bruk. Mange ganger har DirectX 11 bare en kjerne av CPU fullstendig maksimalisert mens andre kjerner sitter i tomgang. DirectX 12 lover å spre denne arbeidsmengden over CPU-kjernene jevnere og gi spillene mye mer CPU-kraft å jobbe med. Den neste store forbedringen som er lovet av DirectX 12, er muligheten til å håndtere mange flere oppringninger. Uavgjort skjer når spillmotoren ønsker å tegne noe på skjermen. Kravet til mange anløpssamtaler er generelt veldig beskattende for CPU. DirectX 12 skal visstnok kunne håndtere opptil 600 000 trekkoppringinger. For å sette dette i perspektiv, kunne DirectX 9 bare håndtere 6000 uavgjort eller 1/100 av det DirectX 12 vil være i stand til.

I flere år har det vært mulig å kjøre flere GPU-er i SLI / Crossfire-modus. En av de store begrensningene var imidlertid at VRAM innebygd i kortene ikke stablet sammen for å lage et stort, kontinuerlig basseng. For eksempel, hvis du har to GPU-er hver med 2 GB VRAM, hadde du fremdeles effektivt bare 2 GB VRAM fordi hvert kort måtte ha den samme informasjonen lagret i den. DirectX 12 håper å løse dette problemet ved å bruke AFR eller alternativ rammegjengivelse. I stedet for at hver GPU gjengir en del av hver ramme, vil GPU-ene nå i stedet gjengi en hel ramme hver. Dette gjør at VRAM på hvert kort kan brukes uavhengig, og forhåpentligvis la kort med mindre mengder VRAM være levedyktige for spill en god stund lenger. Det er ment å være mange andre nye funksjoner som er inkludert i DirectX 12 for å skyve spillgrafikk lenger enn noen gang før. Imidlertid er Microsoft fortsatt ganske hysj om hva disse nye funksjonene er. Vi vil forhåpentligvis vite mer om dem snart utgivelsen av API kommer nærmere.

Figur 3: DirectX 12 API Overhead reduseres når du bruker flerkjernede CPU-er.
Bildekilde; Bildekreditt: nVidia GeForce

Vulkan

Det er ikke så mye kjent om Vulkan som det er om DirectX 12, som det nettopp ble kunngjort på GDC 2015. Det vi vet er at produsentene av OpenGL, Khronos Group, la navnet glNext til fordel for Vulkan. Vulkan ser ut til å være avledet fra Mantle, som jeg nevnte tidligere i artikkelen. Videre ser det ut til at AMD bringer de beste delene av Mantle til bordet for Vulkan i et partnerskap med Khronos Group. Vulkan skal visstnok ha mange av de samme fordelene med DirectX 12, men den er ikke bundet til en eneste plattform som Windows. Den vil i stedet være tilgjengelig på mange forskjellige plattformer, inkludert Linux og til og med mobile enheter. Vulkan-driverne for både Windows og Linux vil være helt åpen kildekode i motsetning til DirectX. Vulkan vil forbedre flergjenger, og bruker derfor mye bedre CPU-kraft som er tilgjengelig i dag ved å spre arbeidsmengden over flere CPU-kjerner. Som tidligere antydet, vil reduksjon av belastningen på CPU gjøre at GPU-er ikke kan flaskehalses så lett som de er nå. Dette bør gi et ganske betydelig innrammet løft under spilling. Kilde 2, som nylig ble kunngjort av Valve, vil være den første nye spillmotoren som støtter Vulkan fullt ut, selv om jeg er sikker på at mange flere vil bli kunngjort i løpet av en nær fremtid. Dota 2, et spill kjent for å være CPU-intensivt, ble vist kjører i Source 2 med den nye Vulkan API ved å bruke Intels integrerte grafikk på CPU. Dette er noe som absolutt ikke ville vært ønskelig under DirectX 11, men med Vulkan så det ut til at spillet hadde en rimelig bildefrekvens gjennom hele tiden. Dan Baker, som er en utvikler for Oxide-spill, gikk selv så langt å si at “inntil GPU-produsentene får handle sammen og gjør GPU-er ti ganger raskere enn vi har nå, kan vi ikke maksimere CPU-en”. Dette er gode nyheter for folk som kjører tregere CPU-er eller som har mye GPU-hestekrefter for øyeblikket fordi det vil bety mye bedre ytelse er oppnåelig på samme maskinvare.

Figur 4: Diagram som viser fordelene med Vulkan (redusert flaskehals til GPU).
Bildekilde; Bildekreditt: Khronos

Hva betyr dette for fremtiden for spill?

Vel, i en god stund har nå GPU-kraft økt mye raskere enn CPU-strøm. For fem år siden uttalte Intel til og med at noen GPU-er var 14 ganger raskere enn deres helt egne CPU-er. Disse testene ble utført ved hjelp av en nVidia GTX 280 vs en i7 960 Intel CPU - nå betraktet som relativt utdatert maskinvare. Gapet mellom en nVidia GTX Titan X (eller til og med en nVidia GTX 980) og det nåværende mainstream CPU-kraftsenteret - Intel i7-4790k CPU - bør være mye større. Poenget jeg prøver å gjøre er at vi begynner å se flere og flere spill treffe en vegg i ytelse på grunn av CPU. Spør noen med en høy oppdateringsfrekvensmonitor hvor vanskelig det er å opprettholde 100 + fps med gjeldende CPU-er i noen spill. Oppriktig sagt ville det bare bli vanskeligere uten disse nye API-ene, og deres evne til å utnytte CPU-strømmen mer effektivt. Innføringen av disse nye API-ene kan bety et enormt forbedret ytelse for folk flest. Videre vil det også gjøre det mulig for utviklere å bygge mye mer CPU-intensive spill enn vi har nå. Tenk deg for eksempel et spill som Assasins Creed som har tusenvis av NPC-er på skjermen på en gang, alt sammen med hverandre og karakteren din mens du streifer rundt i en by. Eller spill som Star Citizen, der du trenger en veldig veldig sterk CPU for å få en hvilken som helst form for stabil og akseptabel bildefrekvens, kan i den nærmeste fremtid kreve en gjennomsnittlig CPU i beste fall og en sterk GPU for å holde en fin solid 60fps.

Til syvende og sist er dette en veldig spennende tid å være en spiller. Når disse nye grafikk-API-ene er utgitt, ser vi kanskje det største hoppet innen spillteknologi på lenge. La oss bare håpe at disse API-ene kan leve opp til sprøytenarkomanen de allerede har bygget opp for seg selv.

Nye grafikk-apier og fremtiden for pc-spill