25. 2. 2013

Killzone: Shadow Fall - 1080p/60


Zdržím sa zbytočných slov - utočíme na métu 1080p/60fps. Všetci sme videli to herné video a ja sa budem v tomto článku odkazovať na jeho verziu s fps histogram /máte ho niekde nižšie/. Najprv sme mali iba ústnu iformáciu z jednej nemeckej sajty, že to beži na 1080p/30fps. Ocajchované herné video skutočne ukazuje absolútne stabilných 30 fps. Opakujem - dokonalých 30fps, ani jedno jediné zakolísanie, žiaden tearing. Veľmi ma to potešilo. Okamžite mi to totiž hovorí následovné - v skutočnosti beží hra oveľa rýchlejšie. Malá odbočka. God of War 3 sa hýbe niekde medzi 30 a 60 fps, priemer je na 45ke. Ak teda úmyselne uzamknete framerate na 30ke, dostanete identicky stabilných framerate ako naše K:SF video. Čokoľvek nad 30fps sa proste odstrihne.



Predpokladajme, a verte mi, že to tak skutočne je, že KZ:SF beží v intervale 30 až 60+ fps. Ako sa dostaneme na tu vysnívanú 60ku ? Vedie k tomu jednoduchá cesta. Hra sa začala vyvíjať na nejakom alfa kite, čo nepochybne bolo PC s ADM FX procákom a AMD 6/7xxx grafikou. Je nezmyselné optimalizovať hru na 100% už v tomto štádiu. Pred mesiacom SONY prešlo na beta kity, ktoré by už mali obsahovať PS4 SOC /CPU+GPU/ v takmer finálnej podobe. Nastalo tu však to rošambo s množstvom pamäte pre PS4. Zmena v poslednej sekunde a je rozdiel optimalizovať hru pre 4 a 8 gigový systém. A to stále nie je všetko.

"I'm hearing that PS4 GCN has 8 ACE's, each capable of running 8 CL's each. I believe Tahiti is 2 per ACE, 2 ACE's."
V lete roku 2013 budú konečne k dispozícií finálne dev kity a reči hovoria, že sa tam dostane aj hybridné AMD HD 7/8xxx GPU s GCN 2.0 jadrom. Tie anglické kecy vyššie tvrdia /úplne super čerstva fáma/, že bude masívne prepracovaná ACE časť a spracovanie CL. Jednoduchý preklad. Moderná GPU je schopné aj GPCPU operácie. Na GPU teda môže bežať aj CPU kód. Všetko teda zakcelerujeme na GPU a ružová malina. Omyl !! Ak sa na GPU miešajú CPU a GPU moduly celé to pracuje strašne neefektívne. V princípe su aj veľmi moderné grafiky v tomto prípade "in-order" slimáky. Inštrukcie musia byť spracovanie vždy podľa poradia, bez ohľadu na okolnosti a tie sa pritom menia desať krát za frame.

AMD teda do svojich grafik vymyslelo tzv. ACE /Asynchronous compute engine/. Táto jednotka automatizujea zrýchľuje asynchrónne spracovanie CPU a GPU kódu na SIMD jednotkách GPU. Zabraňuje zahlteniu GPU, razantne zvyšuje efektivitu celého proceu. Angličan tvrdí, že sa nielenže zvýšil počet ACE enginov ale aj množstvo spracovaného materiálu za jednotku času. A to zvýšenie je ohromné, chcel som pôvodne povedať gigantické ako penis supermana. Nič z toho samozrejme nevieme naisto ale KZ:SF má rozhodne aj bez toho všetkého veľkú rezervu na zlepšenie výkonu.

Ak by napriek tomu všetko hore uvedené zlyhalo. Máme tu plán B. Puristov nepoteší ale ja ho beriem všetkými piatimi. Dnes nám teda KZ: SF beží na priemernom framerate 45fps. Optimalizáciou dosiahneme v najhoršom možnom prípade prašivých plus 5 frejmov. Budeme teda na 50ke. Zvyšok porieši dynamický framebuffer. Bodka. Ide o techniku, ktorú do praxe zaviedol Wipeout HD pre PS3. Ak nie je engine pritlačený k múru beži v režime 1080p/60, ak sa deje na ploche rošambo, tak engine per frame zmení rozlíšenie o 100-200-300-400 riadkov podľa potreby. Udeje sa to tak rýchlo, zlomok sekundy a pri 60 fps a chaose na obrazovke si nič nevšimnete aj vďaka vysokému základnému rozlíšenie /RAGE engine ID Softu to robí na PS3ke bežne a to je základ iba 720p !!/. Podľa mňa teda nič nebráni tomu aby dev tím mieril k absolutóriu - 1080p/60/AA.