Azonban ahhoz, hogy megértsük, miért is fontos ez, először is beszélnünk kell a PC-k és a konzolok közötti néhány fontosabb különbségről. Nem célom, hogy egy komoly hardveres/IT magazin igényességével menjek bele a témába, akit mélyebben érdekel a téma, az úgyis tudja, hogy nézzen utána. Így főként nagyobb vonalakban, a lényeges dolgokat igyekszem majd kiemelni, melyek nekünk, játékos szempontból fontosak lehetnek.

Kezdjük rögtön a lényeges kérdéssel. Hogyan lehetséges az, hogy egy papíron a csúcs PC-knél jóval gyengébbnek tűnő konzol a gyakorlatban mégis gyorsabb lehet? Miként tud egy hét-nyolc éves vas még ma is olyan játékokat futtatni gond nélkül, mint például a Grand Theft Auto V, vagy a Crysis 3? Nos, a válasz egyik fele a hardveres felépítésben keresendő. Habár lehet, hogy PC-n birtokolhatunk egy nagyon erős processzort, és egy ehhez mérten izmos videokártyát, az alapvető probléma még mindig az, hogy ezek nem rendelkeznek közös memóriával, közös címtérrel, így a különböző adatokat a GPU memóriája és a rendszermemória között kell másolgatni, duplikálni, két helyen tárolni, ami nem túl hatékony. S persze a processzort és a GPU-t továbbra is a viszonylag lassú PCI Express busz köti össze, ez pedig szintén nem kifejezetten előnyös.


Mindez duplán nem előnyös, ha a közeli jövő slágerét, a GPGPU-számításokat nézzük. A modern grafikus processzorok felépítése ugyanis lehetővé teszi, hogy általános jellegű számításokat futtassanak rajtuk a játékkészítők, így sokkal gyorsabban és hatékonyabban tudnak számolni például fizikát, szimulálni törést, de még hangokkal kapcsolatos számításokkal is jobban elboldogulnak, mint a központi processzor. Az ilyen jellegű számításokhoz azonban a CPU és a GPU együttműködésére van szükség: a CPU beír egy adatot a memóriába, amit átad a GPU-nak feldolgozásra, a GPU pedig aztán visszaírja a memóriába az eredményeket. Ez szinte lehetetlen hatékonyan megvalósítani az egységesített memória nélkül, és a hírek szerint éppen ezért nem is hozza át PC-re az EA Sports az új Ignite Engine-t, ami különösen támaszkodik a GPGPU-s feldolgozásra - megoldható lenne a dolog, de olyan erős PC-ken, amikkel a játékosok messze túlnyomó többsége egyszerűen nem rendelkezik.

A konzolok hardvere tehát nem a nyers erőre épít, hanem az okos, hatékony felépítésre. Akad azonban ennek a történetnek egy szoftveres oldala, melynek főszereplője a grafikus API. Tulajdonképpen ez az a programozói felület, melyen keresztül a programozók elérik a hardvert, és futtatják a megírt programkódot a GPU-n. A PC esetében azonban több probléma is felmerül, melyek abból adódnak, hogy egyszerűen nem fix a platform, így az API-nak kapásból több külön cég teljesen eltérő felépítésű grafikus processzorait kell lekezelnie. Ezért jött létre a DirectX, mely absztrakttá teszi a gépben található hardvereket, és egy általános felülelet kínál a játékkészítőknek, akiknek így nem kell foglalkozniuk azzal, mi van a gépházban. Ez persze egyértelművé teszi, hogy ilyen körülmények között komolyabban optimalizálni sem lehet, hiszen az közel lehetetlen lenne ennyi különböző grafikus kártyára, így a DirectX lényege pont az, hogy elrejtse ezeket a különbségeket. Ezért hívjuk a DirectX-et magas szintű API-nak, ahol a magas szint jelen esetben arra utal, hogy “messze van” a hardvertől. A lényeg tehát, hogy a DirectX általánosít, így hiába jobb, vagy tud többet az egyik cég GPU-ja a másikénál, ezt valójában sosem lehet kihasználni, tehát a drágán megvett hardverünk jelentős része csak üldögél magában, és malmozik.

Ezzel szemben a konzolokban fix hardver található, amely sosem változik meg a masina életciklusa alatt. Éppen ezért a konzolt gyártó cégek (Sony, Microsoft, Nintendo) egy teljesen az adott konzol hardveréhez szabott, alacsony szintű API-t tudnak írni, ami így lehetővé teszi, hogy a programozók a GPU összes létező képességét kihasználhassák - ezt az API-t a Sony például libGCM-nek hívja. Mennyire súlyos a helyzet a PC számára? Nos, nagyon, de nézzünk néhány példát. A DirectX 11, hogy mindenkinek megfeleljen és egy közös alapot tudjon adni a hardvergyártóknak, 128-ra korlátozza a shaderenként használható egyedi textúrák, és 64-re a használható UAV-k számát. Ezek egyike sincs korlátozva egyik next-gen konzolon sem. A DirectX azonban az AMD újabb generációs, GCN architektúrára épülő kártyáit fogja vissza leginkább - vagy nézhetjük úgy is, hogy az AMD jelentősen túlteljesítette a DirectX 11.1 elvárásait. Míg az Nvidia Kepler alapú grafikus processzorai 1 048 576 különböző textúrát tudnak betölteni egy shaderbe, és 8 UAV-t támogatnak, addig az AMD hardverein mindkettő teljesen korlátlan, ráadásul az GCN teljesen támogatja a hardveres virtuális megatextúrázást is, míg a Kepler nem.


A PC-s API-k (jelen esetben a DirectX, de ugyanúgy az OpenGL) lassúsága és kelletlensége azonban leginkább az úgynevezett draw callok, avagy rajzolási parancsok esetén jön ki. Amikor a GPU ki szeretne rajzolni egy objektumot az adott képkockára, akkor egy ilyen parancsot kell hozzá kapnia a CPU-tól. Ez egy modern játékban egy képkockán belül nagyon sokszor megtörténik, és alapvetően a minél több, annál jobb elve érvényesül. Viszont a PC-ken ez akkora túlterheléssel tud csak működni, hogy a játékkészítők kénytelenek leszorítani a rajzolási hívások számát pár ezerre, míg konzolokon rendszeresen akár 20-30 ezret is használnak. Ez pedig leegyszerűsítve ismét csak azt jelenti, hogy az aranyárban vett új grafikus kártyánk egy része az idő többségében csak azon tűnődik, hogy ugyan miért nem kap már valami feladatot, amivel elfoglalhatná magát.

A helyzet tehát komoly, és az az igazság, hogy már rég ki kellett volna erre találni egy megoldást, de ezt sem a Microsoft, sem pedig az Nvidia nem forszírozta különösebben - az ő szempontjukból érthető, üzleti okokból. Az AMD viszont meglépte azt, amire más az utóbbi évtizedben nem vállalkozott: elkészített egy konzolokhoz hasonló, alacsony szintű API-t PC-re. Ez a Mantle, és jelenleg kizárólag a GCN-architektúrás Radeonokat támogatja, de az AMD kinyitotta a platformot. Persze ha magában azt nézzük, hogy az AMD grafikus kártyái piaci részesedésüket tekintve jókora kisebbségben vannak az Nvidia termékeihez képest, felmerülhet a jogos kérdés: miért támogatná ezt bárki is? Miért írna egy játékfejlesztő külön rendermotort csak a kisebbségben lévő AMD felhasználók számára, ahelyett, hogy továbbra is kizárólag csak az univerzális DirectX 11-re dolgozna? Miért volt bátorsága ezt mégis meglépni az AMD-nek?

Nos, azért, mert az utóbbi pár hónapban jelentősen átalakult a látkép. A gyártók bejelentették a következő generációs konzolokat, és a PlayStation 4-ben, valamint az Xbox One-ban is GCN-re épülő grafikus feldolgozó teljesít szolgálatot, amihez ha hozzáadjuk a PC-s AMD videokártyákat, akkor azt az eredményt kapjuk, hogy azért már a játékipar egy elég jelentős része GCN-alapokon fog működni. Az AMD a bemutatón hangsúlyozta, hogy a Mantle kifejezetten a konzolos optimalizációs tapasztalatok alapján jött létre. Sőt, néhány külföldi hardveres magazin egészen odáig is elment, hogy a különböző információkat és félmondatokat összelegózva azzal a feltételezéssel állt elő, hogy a Mantle gyakorlatilag az Xbox One alacsony szintű API-jának portolása PC-re. Akár így van, akár nem, az biztos, hogy amit a játékkészítők megcsináltak a következő generációs konzolokra, azt nagyon egyszerű lesz áthozni PC-n a Mantle-re, így erősen valószínűnek tűnik, hogy sok-sok játék fogja támogatni a jövőben.


A Mantle tehát végre lehetővé teszi, hogy egy PC-s videokártyából, s egyelőre azokon belül a nagyon fejlett GCN-architektúrás Radeonokból ki lehessen hozni a maximumot. Az AMD egyelőre nagyon kevés részletet árult el, a cég novemberben fog bővebben beszélni a technológiáról. Az mindenesetre biztos, hogy az egészet a DICE-szal és az Electronic Artscal közösen fejlesztették ki, és kifejezetten a különböző stúdiók kérései, kívánságai alapján dolgoztak. Ennek megfelelően az első játék, ami teljes egészében fog futni Mantle-ön, az a Battlefield 4 lesz. S mivel a Frostbite 3-ra készül gyakorlatilag a jövő összes EA-játéka, feltételezhető, hogy mindegyik tud majd Mantle-ös rendermotorral működni, de az AMD szerint már rengeteg csapat letette a voksát az API melett. A cég előzetesen közölt mérései egyébként bíztatóak: úgy tűnik, hogy a Mantle akár kilencszer több rajzolási hívást tud teljesíteni, mint a DirectX 11. Ez pedig a gyakorlatban azt jelenti, hogy egy adott játék egy GCN-architektúrás Radeon grafikus kártya megléte mellett sokkal gyorsabban futhat Mantle-ön, mint DirectX 11-en. Ezt a sebességet a játékfejlesztők pedig meg is tarthatják (a több fps mindg jobb, vagy például elég lehet olcsóbb grafikus kártyát venni), de akár fordíthatják arra is, hogy szebb grafikát érjenek el.

Akárhogy is, nagyon érdekes és izgalmas fordulat ez a korlátozásoktól és visszafogásoktól régóta terhelt PC-s játékfejlesztés számára. Valami végre elindult. Jó idők jöhetnek!