Hiába duruzsol bivalyerős vas a gépházunkban, ha egy papíron gyengébb konzolon jobban fut az adott multiplatformos cím. Nem titok, a PC-s játékok teljesítményét évek óta a maradi szoftveres felépítés gátolja, ám szerencsére erre az AMD és a Microsoft is rájött. A Mantle és a DirectX 12 közelebb hozza egymáshoz a számítógépek és a konzolok technológiáját, az eredmény pedig magáért beszél.

Hiába szajkózták eddig a hardvergyártók, hogy csak a gyorsabb processzoron és a bivalyerős videokártyán múlik a PC-s játékosok boldogsága, ez egyszerűen nem igaz. A számítógépek felépítése hosszú évtizedek óta nem változott, így nem csoda, hogy egy kimondottan játékra dedikált konzolon sok esetben szebben és gyorsabban futnak korunk sikercímei. Persze a PC-k felépítését nem lehet egyik napról a másikra megváltoztatni -- egy gép továbbra is alaplapból, processzorból, memóriából és videokártyából áll, a problémát más módon kell orvosolni. Ez az eddig törvényszerűnek tűnő állítás talán módosult a PC-kre nagyon hasonlító PS4 és Xbox One megjelenése óta (mely gépek egyébként már most sokkal gyengébbek, mint egy csúcskategóriás gamer-PC), az azonban tény, hogy a kurrens konzolgeneráció képviselői szoftveres oldalon még mindig sokkal inkább kedveznek a videojátékok programozóinak, mint egy megannyiféle módon felépíthető személyi számítógép.

A probléma gyökere

Sajnos a CPU és a VGA nem rendelkezik közös memóriával, így az adatokat a RAM és a GPU között kell másolgatni, ami egyrészt időpocsékolás, másrészt felesleges. Ráadásul korunk GPU-i már nem csak grafikai jellegű számításokat képesek végezni, hanem egyéb nyalánkságokat is, legyen szó a látványos fizikáról, a pályaelemek rombolhatóságáról, mesterséges intelligenciáról és sok más apróságról. Manapság ez a gyakorlatban úgy néz ki, hogy a CPU beír egy adatot a rendszermemóriába, amit aztán a GPU dolgoz fel, a végeredmény pedig visszakerül a RAM-ba. A folyamat jelentősen felgyorsítható és hatékonyabbá tehető egy olyan egységesített memóriával, mint amely az Xbox One-ban és egy PS4-ben található meg. Sok PC-s felhozza példaként, hogy egy aktuális next-gen konzolos cím nem jelenik meg személyi számítógépekre. De miért is jelenne meg, ha a derék konfiguráció nem tudna vele mit kezdeni? Az új konzolos címek motorjai egységesített memóriára építkeznek, ha az engine-t átírnák PC-re, azt csak egy bivalyerős konfiguráció lenne képes futtatni, és valljuk be, a játékosok többsége ilyennel nem rendelkezik.

DirectX 12

Egyértelmű, hogy a PC-n való játék megváltása kizárólag szoftveres oldalon mehet végbe, ehhez pedig a grafikus API-k radikális átalakítása szükséges. Az API egy programozói felület, amellyel a játékfejlesztők elérik a hardvert és programkódokat futtatnak a GPU-n. Mivel ahány hardvergyártó, annyiféle különböző felépítésű grafikus feldolgozóegység létezik, ezért jött létre a DirectX, amely egy általános felület, így a programozóknak nem szükséges figyelembe venni azt, hogy milyen vas lapulhat a világ több millió konfigurációjában. A fix hardver hiánya miatt nem lehet különböző videokártyákra optimalizálni a játékokat, a fejlesztőknek be kell érniük egy átfogó megoldással, így hiába vásároltunk méregdrága VGA-t, nem tudjuk kihasználni annak valódi tudását. A konzolok persze fix komponensekből épülnek fel, melyek soha nem változnak, így a fejlesztők az adott masina minden képességét ki tudják aknázni, beleértve a GPU-ét is.

Színre lép a Mantle

Ezzel szemben mit kapnak a PC-sek? A DirectX 11 például 128-ra korlátozza a shaderenként használható egyedi textúrák, és 64-re a használható UAV-ok számát azért, hogy minden hardvergyártónak közös alapot tudjon nyújtani. Mondanunk sem kell, hogy a next-gen konzolokon ilyen korlátozások nincsenek. Az AMD legújabb, GCN architektúrára épülő videokártyáiban sem lennének ilyen megkötések a DirectX 11 nélkül. Korunk PC-s API-jai -- beleértve John Carmack kedvencét, az OpenGL-t is -- egyszerűen nem állják meg a helyüket a jövőre nézve. Ha minőségi látványra várunk, az több (plusz) számítással jár, a teljesítmény egy bizonyos szint után elkerülhetetlenül leesik, mivel az aktuális API eléri a végső határt, pedig a videokártya fizikailag még bírná a terhelést.

Az AMD megelégelte az jelenlegi API-k egy helyben toporgását, mivel a piac gyorsabb és látványosabb játékokat akar. Kifejlesztették a Mantle API-t, amely jelenleg a GCN-architektúrás Radeonokat támogatja. Lényegében egy konzolokéhoz hasonló API-ról van szó, amellyel a fejlesztők kicsikarhatják a maximumot a GPU-ból. Egyelőre ugyan nem sok játék támogatja -- a Battlefield 4 és a Thief igen --, de a jövőben ez változni fog. Előnyét azok a fejlesztők használhatják ki, akik a DirectX 11 és az OpenGL határait szeretnék áttörni. Noha egy átlagos, középkategóriás Radeon-kártyával szerelt gépen jelenleg olyan 5-10 százalékos teljesítménynövekedés érhető el, egy R9-cel már sokkal nagyobb. Nagyon is elképzelhető, hogy a jövőben olyan játékokkal találkozunk, melyek egy-egy speciális effektjét csak a Mantle lesz képes megjeleníteni, míg az olyan programoknál, ahol a kiadható rajzolási parancsok száma eddig erősen limitáltak volt, a határ kitolódik, és akár 50 százalékos teljesítménynövekedés is elképzelhető. Ráadásul a next-gen konzolos sikercímek PC-re való portolása is könnyebbé válhat. Az AMD szerint már számos stúdió letette a voksát a Mantle mellett, az EA holdudvarába tartozó, Frostbite 3-at használó csapatok mellett a Crytek, a Crystal Dynamics, az IO Interactive és a Rebellion is dolgozik a technológiával. Igaz, az ördög ügyvédjeként rá kell világítsunk, hogy a jelenlegi videokártya-piacot kétharmados aránnyal uralja az Nvidia, szóval a hirtelen Mantle-re átálló fejlesztők álma nem kicsit utópisztikus.

Feltámad a DirectX

Az iparág szerencsére felismerte az új PC-s API-kban rejlő lehetőséget, idén tavasszal megérkezett a Microsoft válasza a Mantle-re. Persze minden részlet még nem ismert, elvégre az API még tervezés alatt van, ám az alapok már körvonalazódtak. A DirectX 12-t a fejlesztői visszajelzések alapján tervezték meg, kiszámítható és egységes teljesítményt kínál, ráadásul jól skálázható, és ami a legfontosabb, alacsony szintű hozzáférést biztosít a hardverekhez. A többmagos processzorok kihasználása hatékonyabbá válik, a végrehajtási modell pedig sokban hasonlít a Mantle API-ra. A DirectX 12 segítségével képkockánként akár ötvenezer rajzolási parancs is kiadható, ami a DirectX 11 kétezres szintjéhez képes brutális előrelépésnek számít. Mindemellett a processzor erőforrásait is sikerült felszabadítani és a környezet rendkívül hasonlít az Xbox One-éhoz (lévén abban is egy GCN-architektúrás GPU található)-- talán nem véletlen, hogy az idei GDC-n a Forza Motorsport 5 PC-s demóját is bemutatták. Az eredetileg Xbox One-ra megjelent autós cím egy GeForce GTX Titan Black kártyán futott, 60 fps sebességgel -- bár az említett VGA nem az AMD terméke, és kétszer olyan drága, mint egy Xbox One, a szoftveres kapcsolat példája attól még áll.

A DirectX 12 tehát lehetővé teszi, hogy az eredetileg PS4-re és Xbox One-ra szánt alkotások számítógépeken is egyazon környezetben fejlődjenek, azaz cross-platform dolgozzanak rajtuk a készítők. Az Nvidiának különösen fontos az új API, elvégre a zöldek nem áltak elő olyan saját megoldással, mint a rivális gyártó, viszont az AMD támogatni fogja a DirectX 12-t is, biztos, ami biztos.

Jó hír, hogy GCN-es Radeon, valamint kepleres, maxwelles és fermis GeForce birtokában nem feltétlenül szükséges lecserélnünk (nyilván frissen vásárolt) videokártyánkat a technológia kihasználásához, csupán az új drivereket kell megvárnunk (persze nyilván nem minden DX12-es funkció lesz elérhető így, de azért fő az optimizmus). És hogy mikor kapjuk kézhez a várva várt API-ra épülő programokat? A redmondiak elmondása szerint 2015 végéig a forgalomban lévő GPU-k száz százaléka, míg a gamer-PC-k nyolcvan százaléka támogatja majd DirectX 12-t. Ebben az időszakban várhatók az első DX12-játékok, sőt, a Windows-alapú okostelefonokat és tableteket is felvértezik a technológiával. Az Xbox One-tulajok számára nem elhanyagolható szempont az sem, hogy a DirectX 12-es játékok jelentős teljesítménynövekedést eredményeznek konzolon is.

A változás szele már megérintett minket, ám még egy évet várnunk kell rá, hogy a két API teljesen kiforrja magát. Jelenleg egyedül a Mantle-ba kapaszkodhatunk, a DirectX 12 esetében meg kell várnunk a Windows 9 megjelenését. A fejlesztők már régóta könyörögnek a hardverek jobb kihasználhatóságáért, szerencsére a döntéshozók -- jobb későn, mint soha alapon -- fejet hajtanak a nép akarata előtt, amiből mi, játékosok csak kamatoztathatunk. Végre megdolgoztathatjuk az eddig csak vegetáló kártyánkat, gépünk erőforrásait hatékonyabbak kezelik majd a játékot, nem lesznek olyan zavaró tényezők, amik visszafognák a teljesítményt. Az ígéretek legalábbis így hangzanak, s ha csak a fele megvalósul belőle, megéri PC-snek maradni.