AMD-puccs: alacsony szinten programozható GPU-k
Egyesek a GPU-piac szétszakításáról beszélnek, mások forradalomként üdvözlik az AMD lépését. Az alacsony szintű API bejelentésével lezárult egy időszak a PC-s játékok történetében, hogy hatása pozitív, vagy inkább negatív lesz, az idő fogja eldönteni.
Gyakorlatilag ráborította az asztalt a PC-s játékpiacra az AMD tegnapi váratlan bejelentése. A Mantle API bevezetésével a gyártó felrúgta az iparág eddig hallgatólagos megállapodását és gyártóspecifikus programozási interfészt készített saját PC-s grafikus processzoraihoz. Az AMD természetesen továbbra is támogatja az iparági szabványnak számító OpenGL és DirectX API-kat, nem ezek helyett, hanem ezek mellett jelenik meg az új, alacsony szintű hozzáférést nyújtó Mantle a GCN (graphics core next) sorozatú processzoraihoz. A spekulációk szerint a Mantle API az Xbox One grafikus interfészének gyakorlatilag teljes portolása PC-re, ezt az AMD egyelőre nem erősítette meg, de közleményében finoman utalt rá.
Áthozni a konzolos előnyt
Az AMD kizárólagos szállítója az összes következő generációs konzolnak, azonos architektúrára épülő CPU-GPU lapka került az Xbox One-ba és a PlayStation 4-be is. Ez azt jelenti, hogy a következő néhány évben számtalan olyan játék jelenik meg, amelyek a konzolokban található GCN-architektúrára optimalizáltak, az AMD által a Sony és a Microsoft számára fejlesztett alacsony szintű API-t programozva. A PC-s portoláshoz szükséges, hogy a grafikus alrendszer az alacsony helyett magas szintű, nem architektúra-specifikus API-t használjon, ezzel számottevő teljesítményhátrány épül be.
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
Az alacsony szintű programozás ugyanis a fejlesztő és a felhasználó számára is számtalan előnyt hordoz, röviden összefoglalva: azonos hardveren jóval magasabb vizuális élmény (grafikai minőség és/vagy frissítési gyakoriság) érhető el. A fejlesztő ugyanis a hardver egyedi specifikációinak ismeretében a kód futását részleteiben is optimalizálhatja, illetve kihasználja az architektúra egyedi képességeit is. Az AMD GCN mikroarchitektúrája és grafikus utasításkészlete azonban megegyezik a két konzol és a PC-s GPU-k között, így a konzolokra optimalizált játékmotorok használhatják ezt az optimalizált módot az újabb AMD-s hardvereken. Az inteles és nvidiás, valamint régebbi AMD-s GPU-khoz szükséges lesz az OpenGL vagy Direct3D-s verzió elkészítése, ez azonban lassabb lesz (amúgy azonos nyers teljesítményű hardveren).A rendszer ugyanakkor fordítva nem nagyon működik. Ahogy John Carmack legendás játékfejlesztő egy tweetje megjegyezte, a Mantle várhatóan minimális teljesítménybeli különbséget hoz azon játékok számára, amelyek Direct3D-ben készültek és később implementálják a Mantle-t. Sokkal nagyobb azonban a különbség a "konzol-first" játékoknál, amelyeket kifejezetten a Mantle API-ra írtak, ezek PC-s környezetben az AMD hardverén számottevően gyorsabban és/vagy szebben futhatnak, mint a versenytársak termékein.
Carmack másik tweetje érdekes hipotézist vet fel: azzal, hogy a Mantle API nem csak a konzolok esetében érhető el, hanem potenciálisan a Valve SteamOS-ét futtató nyílt gépeken is, az AMD pillanatok alatt saját maga ellen hangolhatja a Sony-t és a Microsoftot. A közös x86-os architektúra mellett a közös API ugyanis azt jelenti, hogy a korábbinál jóval egyszerűbben lehet SteamOS-re portolni játékokat, a Windows-exkluzív Direct3D dominanciáját egy ilyen lépés hirtelen szertefoszlathatja és egy csapásra releváns tényezővé emelné a Valve platformját.
Nem véletlenül létezik iparági szabvány - kontra
A modern PC-s GPU-k egészen különböző utasítás- és mikroarchitektúrát használnak, ezek között átjárás natív kód szintjén egyáltalán nincs. Egyrészt különböző a három nagy gyártó (AMD, Intel, NVIDIA) megközelítése is, de azonos gyártó különböző GPU-családjai között is hatalmas szakadékok vannak architekturális szempontból. Az igen színes piacot a szabványos magas szintű API-k kötik össze, a Microsoft-féle Direct3D és a szabad szoftveres gyökerekkel rendelkező OpenGL. A grafikus API-k és az architektúra közötti rést a gyártók meghajtói hidalják át, amelyek futás közben fordítják gépi kódra a grafikus utasításokat. A sokszoros áttétel (játék-API-meghajtó-hardver) miatt elvesznek a GPU-k fejlett, ám az API-n keresztül nem hívható képességei, a rétegek pedig a hatékonyságot is jelentősen csökkentik.
Ahogy már említettük, ezek a közös API-k komoly limitációt jelentenek mind funkcionalitást, mind teljesítményt tekintve, egy fontos előnyük azonban van: létrehoznak egy egységes, viszonylag könnyen megcélozható piacot, amelyre a fejlesztők lőhetnek. A közös API-k révén válik lehetségessé, hogy sokéves játékok futnak a modern GPU-kon, illetve egyetlen API megcélzásával eszközök százmilliói legyenek megcélozhatóak. Számos médium azonnal félreverte a harangot a PC-s játékokat féltve: a szakadár AMD megbonthatja az egységes piacot, ezzel megnövelve a fejlesztők költségeit és lecsökkentve az egységes fejlesztéssel megcélozható piac nagyságát.
Az igazság ezzel szemben az, hogy a teljes játékipar eddig is fragmentált volt az API-kat tekintve: a konzolok mindig külön utat képviseltek, ennek ellenére a PC-s játékipar nem omlott össze, nem száradt el és az innovációs ütemét is sikerrel őrizte meg. A konzol-PC átmenetre pedig viszonylag gyorsan megszületett a megoldás a sokplatformos játékmotorok formájában, amelyek használatával viszonylag könnyen lehet egyszerre Sony vagy Microsoft konzolra illetve PC-re fejleszteni. Ebben a megközelítésben az API által végzett absztrakciót a játékmotor is képes elvégezni, sokkal hatékonyabban. A Mantle várhatóan a jövőben e motorok számára lesz egy új lehetőség - mindenki más számára pedig továbbra is elérhető Direct3D az AMD hardverein is.
A Mantle támogatását már be is jelentette az EA DICE, a Frostbite motor és a Battlefield sorozat fejlesztője, az engine következő, 3-as generációja PC-s környezetben kompatibilis AMD hardvert érzékelve natív futtatásra fog váltani. Az októberben megjelenő Battlefield 4 mellett ezt a motort használja a Need for Speed következő kiadása, a Star Wars: Battlefront és a Mirror's Edge előzményjátéka is. A sor a Dragon Age: Inquisition és az új Mass Effect játékokkal folytatódik - a Mantle mellett tehát már most igen komoly támogatás sorakozott fel, és ez csupán egyetlen motor.