29. 8. 2010

Synergistic Processing Elements (SPE)

Pepíci z 2K Czech /ex Illusion Softworks/ nezvládli po technickej stránke v Mafii 2 - PS3 verzia /prdelkovo slabučká hra/ ani také triviálne prkotiny, ako je trochu sprajtóznej trávy, mláky krvi pod mŕtvolami, alebo kvapka antialiasingu, aj keď je podpora pre MLAA-SPE obsiahnutá priamo v CELL SDK. Od sráčov s tukom obrastenými prasačími mozgami, čo plzňom zalievajú vepro/knedlo som naštastie už dopredu žiaden veľký výkon nečekal. K môjmu sklamaniu teda nedošlo. Ukážeme si však ako to mali urobiť. Didaktickým príkladom bude hra - Star Wars: The Force Unleashed 2 /SW:TFU 2/. Použité bude pole piatich SPE /zo šiestich dostupných/ v kooperácii s PS3 GPU-RSX.



Začneme od tej najjednoduchšej grafickej operácie. Odstránenie animovanej hlavnej postavičky z frejmu a ponechanie statickej geometrie v pozadí. Táto činnosť je potrebná pre správnu funkčnosť ich "násobiča" framerejtu, ktorý tu teraz rozoberať nebudem, neb vo finálnej verzii nebude zahrnutý a ešte má zopár chybičiek krásy na, ktorých sa ďalej pracuje. Pripomínam, že pri hre, ktorá beží na 30 fps máte na vykreslenie jedného frejmu čas - 33 ms. Čokoľvek /pixel-vertex-geometry-compute shaders/ teda robíte, musí sa do tohto limitu zmestiť, inak sa dočkáte frame dropu, alebo tearingu. Takže, ako už vidíte na obrázku vyššie, ich implementácia vyžaduje - tri prebehnutia grafického enginu cez avatara. Spotreba výkonu pri xcrape je 0.4ms, použité je iba GPU a bohužiaľ aj relatívne dosť pomalé tzv. dynamické vetvenie. PS3 kód beží kompletne sóftvérovo /3 paralelné iterácie/ bez dynamického vetvenia s celkovou ztratou 0.3ms, tá môže byť podľa dev "Branching sucks, software pipelining rulez :)" tímu ešte výrazne znížená.

Program beží ďalej - flipping, interpolácia, ale hoplá pri xcrape dev tím tvrdo narazil na jasnú direktívu teplého billa - realizovať všetky "volania" funkcií cez modifikované D3D API xcrapu. Aby sa aspoň priblížili ku superiórnemu PS3 riešeniu porušili TCR #012 /Technical Certification Requirements/ a manuálne manipulovali s pamäťovým adresovaním skrze tzv. nedokumentované inštrukcie. Nič z týchto problémov PS3 nepozná /low level prístup ku hárdvéru je tam povolený/ a časom 0.8ms hravo porazilo xcrap s jeho 1.5ms fiaskom.



xcrap verzia - vpravo zreteľne viditeľný malý počet motion blur samplov s edge artefaktom

Dostávame s inému efektu. Motion blur - MB . Jeho správne naprogramovanie je kľúčové pre korektné a očakávané vnímanie grafiky, ktorá sa aspoň trochu podobá percepcii reálneho sveta. Hry ako God of War 3, Killzone 2 tu excelujú absolútnym spôsobom pred čímkoľvek, čo by xcrap mohol ponúknuť. Nie je tomu inak ani pri SW:TFU 2. Pri xcrape sa podarilo zvládnuť túto dôležitú operáciu iba na najnižšej kvalitatívnej úrovni za priemerne 2.2ms /variabilných 5-11 MB samples/. PS3 bez akýchkoľvek problém chrlí neustále 16 MB vzoriek v najvyššej kvalite a iba za 1.4ms vrátane komplexnej úpravy hrán objektov pri "kolízii" s polopriesvitnými mečmi /alfa blending/. Xcrap šmejd, ak by sa pokúsil o PS3 úroveň zakrákal by plynulosťou smerom na juh niekde ku 15-18fps. Depresívne porovnávanie by mohlo pokračovať ďalšie dve strany.

Zopakujme si teda ako tento posratý kus MS hárdvéru obsiera multiplatformové hry od samého začiatku. Menej CPU/GPU výkonu - menej efektov, jasne nižšia kvalita efektov, menej fyziky, menej interakcie. Málo miesta na DVD - orezávanie dĺžky hier, herného obsahu, zásadné rezy samotného designu hry, menej textúr, menej modelov, menej herných asetov, nižšia kvalita úplne všetkého. Žiaden defaultný HDD - zkriplený streaming dát a týmto teda aj všetky sandbox hry od GTA4 cez Fallout 3 po RDR, ktoré nie sú ničím iným .. iba prašivým DVD hnusom. Pozdrav na dobrú noc, a poučenie, ktoré z toho priamo vyplýva - 2K Czech sú iba malí, blbí, provinční, české sráči.