Anonim

Permet-ho afrontar: DirectX 11 i OpenGL són una mica vells. DirectX 11 es va introduir amb Windows 7 el 2009, i OpenGL 4.0 va seguir un any després. Durant els anys del programari, aquestes tecnologies són antigues, i el cultiu actual de maquinari que estan executant ni tan sols era al tauler de dibuix quan es van publicar aquestes API gràfiques. Tenint en compte aquesta desconnexió òbvia, què fa la indústria per aconseguir els temps? Bé, anem a veure el futur proper i veurem, però per començar expliquem primer què és una API i quina funció serveix per a jocs.

Què és una API?

Una API o interfície de programació d'aplicacions és un conjunt de protocols i eines utilitzades per crear programari. Les API gràfiques són només una API especialitzada creada per facilitar la generació de gràfics en 3D. Les API gràfiques faciliten la creació d’imatges en 3D, però també permeten indicar a l’API que faci alguna cosa (per exemple, dibuixi un rectangle) i, a la vegada, que l’API es comuniqui amb el maquinari sobre com realitzar aquesta tasca. Aquesta és la raó principal per la qual tantes GPU diferents amb maquinari especialitzat poden executar els mateixos jocs. Sense l’existència d’una API, el mateix joc s’hauria d’escriure de maneres diferents per comunicar-se amb cada conjunt específic de maquinari. Això limitaria durament les manufactures de maquinari i augmentaria considerablement el cost de la construcció de jocs, un cost que finalment seria repercutit al consumidor final.

Per fer més fàcil d’entendre l’explicació anterior, utilitzaré una analogia: Penseu en una API com a gestor de llocs de construcció. La seva tasca és agafar la idea de l’arquitecte i desglossar-la, programar quins equips han d’estar on i quan i assegurar-se que tothom està a la mateixa pàgina del que s’ha de fer.

Figura 1: Representació gràfica de com funciona una API

API de gràfics utilitzats actualment

Ara que entenem el treball d’una API gràfica, us donem una ullada més a fons a la línia actual. El principal actor actual del mercat és el DirectX de Microsoft, que es va introduir fins al 1995. S'ha actualitzat diverses vegades des del seu llançament i està inclòs al sistema operatiu Windows de Microsoft. DirectX és l’API gràfica que pràcticament tots els jocs llançats per a PC suportaran. De fet, és tan habitual que realment és l’estàndard per a jocs de PC en l’actualitat. DirectX és exclusiu de productes de Windows i Microsoft, cosa que el converteix malauradament en un sistema molt tancat. El següent en línia és OpenGL, l'única principal API gràfica de codi obert. OpenGL es va llançar el 1992 i és multiplataforma, el que significa que funciona amb diversos sistemes operatius incloent Windows, Linux i Mac OS. Finalment, tenim l’API gràfica més nova, Mantle. Mantle es va desenvolupar el 2013 mitjançant una associació entre AMD i Dice. El mantle està disponible a Windows i només per a GPU AMD.

Figura 2: Comparació de DirectX 12 enfront de DirectX 11
Font de la imatge; Crèdit d’imatges: Intel

DirectX 12

El DirectX 12 es llançarà amb Windows 10 aquesta tardor i es produeixen moltes millores noves. Una de les grans millores és el suport de multi-threading molt millor. Més del treball es reparteix en diversos nuclis de la CPU permetent una utilització molt millor i més eficient de la CPU. DirectX 11 moltes vegades tindrà un únic nucli de la CPU completament completat, mentre que altres nuclis estan a prop del ralentí. DirectX 12 promet distribuir aquesta càrrega de treball pels nuclis de CPU de manera més uniforme donant als jocs molta més potència de CPU per treballar. La propera gran millora promesa per DirectX 12 és la possibilitat de gestionar moltes més trucades de sorteig. Una trucada de sorteig es produeix en qualsevol moment que el motor del joc vulgui dibuixar alguna cosa a la pantalla. El requeriment de moltes trucades de sorteig és generalment molt tributari per a la CPU. Se suposa que DirectX 12 pot gestionar fins a 600.000 trucades de sorteig. Per dir-ho en perspectiva, DirectX 9 només pot gestionar 6.000 trucades de sortejament o 1/100 de les que DirectX 12 serà capaç.

Fa anys que és possible executar múltiples GPU en mode SLI / Crossfire. Tanmateix, una de les limitacions importants va ser que el VRAM integrat a les cartes no s’aplegava junts per fer una piscina contínua de grans dimensions. Per exemple, si teniu dues GPU cadascuna amb 2 GB de VRAM, efectivament només teníeu 2 GB de VRAM perquè cada targeta havia de guardar la mateixa informació. DirectX 12 espera solucionar aquest problema mitjançant AFR o representació de fotogrames alternatius. En lloc de que es mostri una part de la GPU de cada fotograma, la GPU ara representarà un quadre sencer cadascun. D’aquesta manera, s’utilitzarà el VRAM de cada targeta de manera independent, i esperem que les targetes amb quantitats més petites de VRAM siguin viables per jugar durant molt de temps. Se suposa que hi ha moltes altres novetats incloses a DirectX 12 per impulsar els gràfics de joc més que mai. Tot i això, Microsoft segueix sent molt molesta sobre com són aquestes noves funcions. Esperem conèixer-ne més aviat quan s'aproximi el llançament de l'API.

Figura 3: La despesa general de l'API DirectX 12 es redueix quan s'utilitzen CPU de múltiples nuclis.
Font de la imatge; Crèdit d'imatge: nVidia GeForce

Vulkan

No se sap tant de Vulkan com de DirectX 12, com s’acaba d’anunciar a GDC 2015. El que sí sabem és que els creadors d’OpenGL, Khronos Group, van deixar caure el nom de glNext a favor de Vulkan. Vulkan sembla derivar de Mantle, que he esmentat anteriorment a l'article. A més, sembla que AMD aporta a Vulkan les millors parts de Mantle sobre la taula en col·laboració amb el grup Khronos. Se suposa que Vulkan té molts dels mateixos avantatges de DirectX 12, però no està vinculat a una sola plataforma com Windows. En canvi, estarà disponible en moltes plataformes diferents, incloses Linux i fins i tot dispositius mòbils. Els controladors Vulkan tant de Windows com de Linux seran de codi obert a diferència de DirectX. Vulkan millorarà el multi-threading i, per tant, utilitzarà molt millor la potència de la CPU disponible avui en dia, repartint la càrrega de treball a diversos nuclis de CPU. Com es feia al·lusió anteriorment, la reducció de la càrrega a la CPU permetrà que les GPU no es puguin embotellar tan fàcilment com ara. Això hauria de proporcionar un augment considerable del framerate durant els jocs. La font 2, que va ser anunciada recentment per Valve, serà el primer nou motor de jocs que donarà suport complet a Vulkan, tot i que estic segur que se’n anunciaran molts més en un futur proper. Dota 2, un joc conegut per ser intensiu en la CPU, es va mostrar en funcionament a Source 2 amb la nova API Vulkan mitjançant els gràfics integrats d'Intel a la CPU. Això és cert que, certament, no hauria estat desitjable en DirectX 11, però amb Vulkan el joc semblava mantenir una taxa de fotogrames raonable. Dan Baker, desenvolupador de jocs d'òxids, fins i tot va arribar a afirmar que "fins que els fabricants de GPU es facin junts i facin les GPU deu vegades més ràpides que ara, no podem deixar de banda la CPU". Aquesta és una bona notícia per a aquells que utilitzin CPU més lenta o que tinguin molta màxima potència de GPU actualment, ja que suposarà un rendiment molt millor en el mateix conjunt de maquinari.

Figura 4: Esquema que mostra els beneficis de Vulkan (reduït coll d'ampolla a la GPU).
Font de la imatge; Crèdit d'imatge: Khronos

Què significa això per al futur dels jocs?

Bé, des de fa molt de temps, la potència de la GPU augmenta a un ritme molt més ràpid que la de la CPU. Fa cinc anys Intel fins i tot va afirmar que algunes GPU eren 14 vegades més ràpides que les de la seva pròpia CPU. Aquestes proves es van fer mitjançant una CPU Intel nVidia GTX 280 vs una CPU Intel i7 960, que ara es considera maquinari relativament obsoleta. La diferència entre una nVidia GTX Titan X (o fins i tot una nVidia GTX 980) i la central de processament actual de la CPU (la CPU Intel i7-4790k) hauria de ser molt més gran. La qüestió que estic intentant és que comencem a veure que cada cop hi ha més jocs en un rendiment en funció de la CPU. Pregunteu a qualsevol que tingui un monitor de taxa d’actualització elevada que costa mantenir 100 + fps amb les CPU actuals en alguns jocs. Francament, només seria més difícil sense aquestes noves API i la seva capacitat d’utilitzar la CPU de manera més eficient. La introducció d'aquestes noves API podria significar un gran augment de rendiment per a la majoria de la gent. A més, també permetria als desenvolupadors construir jocs amb molta més intensitat de la CPU que ara. Per exemple, imagineu-vos un joc com Assasins Creed que tingui milers de NPC a la pantalla alhora, interactuant entre si amb el vostre personatge mentre passegeu per una ciutat. O jocs com Star Citizen, en què necessiteu una CPU molt forta per obtenir qualsevol tipus de velocitat de fotograma estable i acceptable, en un futur proper requereixen una CPU mitjana com a màxim i una GPU forta per mantenir uns 60fps sòlids.

En definitiva, és un moment molt emocionant per ser jugador. Quan es publiquin aquestes noves API gràfiques, potser podrem veure el salt més gran de la tecnologia de jocs en molt de temps. Esperem només que aquestes API puguin estar al dia amb la idea que ja han creat.

Els nous API gràfics i el futur dels jocs de pc