Showing posts with label PS4 power. Show all posts
Showing posts with label PS4 power. Show all posts

26/03/20

Spider-Man PS4 : malé technické postmortem alebo Marx a Engels


Insomniac Games /IG/ v roku 2014 pripravilo pre Xbox exkluzícne hru Sunset Overdrive. Super frenetická akčná sandbox hra. V rokoch 2015 až 2018 pracovali na Spidermanovi pre PS4. Hypotetická PlayStation 4 s 3.2Ghz CPU /+100%/ s 1.6Ghz GPU /+100%/, s 100 gigovým BD /+100%/ s 8 gigabajtami RAM čiste iba pre hry a s hoc aj tým najjednouchším SSD s rýchlosťou čítania pod 800 mega/sec by skrátila dobu vývoja tejto hry minimálne o pol roka, možno aj viac. To je záver postmortem prezentácie z GDC 2019 /toho roku pre COVID-19 zrušenej vývojárskej konferencie/.

lokácia NY centrálna stanica - PS2 versus PS4, na PS5ke nabudúce už aj s raytracingom, eh

Spiderman pre PS4ku je doteraz najväčšia hra, ktorú kedy IG urobili. Najväčšie mesto, obrovské množstvo dát, najväčšie problémy ako to celé pretiahnúť cez konzolu. Sunset engine bol skutočne veľmi dobrý, jednoduchý, efektívny ale musel byť totálne prepracovaný. Na omnoho väčšom Spidermanovi totiž stále makal rovnaký počet ľudí ako na 6 krát menšom svete Sunset city /120 versus 700 hex grid tiles veľkosti mesta/.

IG pre potreby Spidey hry použilo 6 a pol jadier Jaguar CPU, na ktorom bežali desiatky "jobs". Technika naučená ešte na CELL CPU. Časový budget na frame 33ms/30fps bola primárne nastavený s ohľadom na CPU, ktoré išlo na zlomky milisekúnd svojich možnosti. Úmorné mesiace ladenia ako to tam napchať. V roku 2015, v úvode herného prototypovania, im po uliciach behalo asi 30 plne simulovaných AI botov, viac CPU neutiahlo, ak mal ostať čas aj na inú prácu. Vo finále hra simuluje do 1500 chodcov v najbližšom okoli /s kontextovaný prepínaním na full AI botov/ a ďalšie tisíce ako blbé a takmer neanimované marionety vo veľmi veľkej diaľke aby sa "naplnili" ulice. Použili kopu infa z prác na AI a modelovaní davu z Assassin prednášok /Ubisoft/. Zen 2 CPU 8c/16t použité v PS5 by na dvoch jadrách bol pravdepodobne raz taký rýchly ako dokopy tých 6 jadier jaguára.

Pri PS4 GPU sa snažili úspešne natlačiť do asynchrónnej časti grafickej pipelajny celý model nasvietenia vrátane ambientnej oklúzie, screen space reflexií,  procedurálnych vĺn na mori  so základnou interakciou /rýchle Fourierove transformácie alias FFT/ ale čím viac času trávili ladením tým viac konečných termínov museli posunúť. Malá odbočka. Pri úrovni detailnosti geometrie, počet polygónov, medzi modelom v animačke /90K/ a herným /5K/ je nutné opäť mnoho krokov grafika a herného enginu navyše aby bol prechod plynulý a neviditeľný, čo samozrejme stojí svoj čas. Na PS5 nie je problém mať 250K tu a i tam a nestratiť tým ani sekundu.

Streaming dát z HDD. Kolosálne ťažkosti. Pri Sunsete bola rýchlosť postavy natvrdo stanovaná na 14ms/s čo je cca 50kmh. Spiderman však na pavúčom vlákne letí maximálkou až 32ms/s, teda 115kmh. Rýchlosť HDD je bohužiaľ v oboch prípadoch rovnaká. Engine hry Spidermana sa snažil streamovať 3 plošné "tiles" každá veľkosti 128x128 metrov v jednom momente, čo však nedáva možnosť mať na jednu dlaždicu viac ako 20 mega dát, viac HDD nevie dodať. Teraz si predstavte ten skok z 20 mega na 200 alebo 2000 pri PS5. Optimalizácie /šachovanie s mipmapami textúr, geometriou, animáciou, celý manažment toku dát/ pri Spidermenove boli časovo vyčerpavajúce a veľmi extenzívne.

Kapacita BD placky bola hrubo nedostatočná - 50 gigabajtov bolo rýchlo a vysoko prekročené. Vzhľadom na príšerne pomalé HD museli použiť starú fintu ešte z čias PS1/PS2 s ich CD/DVD mechanikami, keď je časť dát /hlavne grafika/ uložené po ploche úložiska duplikovane aby sa šetril hľadací čas/seek time, preskakovanie hlavičky zo stopy na stopy. Pri Spidermanovi však takto pribudlo 10 gigabajtov dát navyše z pôvodných neduplikovaných 900 mega !! Používali L4Z kompresiu a skúšali aj mnoho iných, opäť však narazili limity procáku a Zlib HW dekompresora. Aj preto dnes to zdôrazňovanie oveľa výkonnejšieho Kraken kompresného alogoritmu PS5ky /HW Kraken dekompresor vie dodať až 20 gigabajtov dát za sekundu ak mu ich SSD dokáže zabalené doručiť/.

RAM. Spiderman stojac na vrchole mrakodrapu hľadí do diaľky a silueta mesta a budov pomaly rotuje okolo vás. Propblémom je, že hlavný vizuálny dojem veľkomesta okolo vás nerobia len samotné lesklé krabice barákov ale hlavne /ako ukázali testy/ tie malé prkotiny na domoch. Klimatizačné jednotky, vežičky so zásobnikami na vodu, antény, požiarne schodiská. A musia byť viditeľné do veľmi veľkej diaľky a sú ich stovky, tisíce. Len podobná drobnosť si natrvalo uchmatne z RAM aj 250 mega, čo je praticky toľko čo hlavné jadro enginu.

Záver. Na PS5ke nemusí stredne veľká firma s AA hrou nutne útočiť grafikou, animáciou a zvukom na niekoľko oscarov naraz. Hru ako Spiderman dá PS5ka podľa mňa ľahko v 4K/60 /hoc aj s použitím upscale/ a pretože všetky technické limity PS4 sú odstránené /rýchlosť CPU, GPU, SDD, veľkosť RAM/ môžete tú istú hru dať dokopy aj do 2 rokov. A nemusím vám hovoriť aký obludný rozdiel je platiť 100 ľudí navyše jeden celý rok, teda 120 človeko-mesiacov alebo sa rovnaký čas tešiť zo zisku a pracovať už na ďalšej gamese. Ideme do recesie a efektivita, nákladovosť tvorby hier budú najbližšie roky životne dôležité.

13/03/15

Kauza: chýbajúce anizotropné filtrovanie textúr na PS4ke


Trpezlivosť s ďalším textom, ako vždy chcem aby ste to pochopili, napíšem to primerane stručne a jednoducho. Začíname. Hypotetická obrazovka s rozlíšením 256x256 fyzických pixelov. Textúra 256x256 texelov s 1:1 mapovaním vycapená na display. Pristúpne bližšie. Textúra sa "zväčší" podobne ako stena, imp či výbušný sud v hre DOOM. Ešte väčší zoom a na ploche už máme len zopár veľkých farebných "štvorcov". Bilineárny filtering /2x lineárna interpolácia v oboch osiach/, ktorý nás masovo navštívil hlavne s prichodom prvých 3Dfx grafických kariet rieši práve tento problém. Plynulé prechody jednotlivých texelov medzi sebou. Vážený priemer, nové inter-texely, farebný gradient, prechod. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps.


bilineárne filtrovanie ON/OF a mipmapping v Qvejk trojke vpravo

Odstúpme od tej textúry, jej veľkosť sa zmenší, povedzme na viditeľných 128x128 pixelov, rozlíšenie obrazovky ostáva bez zmeny 256x256 pixelov. Položme si teraz otázku prečo pracovať v tomto momente s 256x256 textúrou /65 535 bodov/, drancovať priepustnosť, texel fillrate plus čumieť na hrozný pixel crawling /pixel-subpixel aliasing artefakty, keď sa pôvodná textúra snaží natlačiť do stále menšieho počtu bodov obrazovky/ keď z nej vidíme 2-4-8 krát menej dát. Uložíme si teda do vram aj 128x128 variantu a už keď sme pri tom tak aj 64x64 a 32x32 verziu. Tomuto sa hovorí vytvorenie zoznamu mip-máp základnej textúry /MIP - multum in parvo - "much in little"/. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps /uloženie množstvá mipmáp však vyžaduje kopu vram/.

Teraz položme našu textúru a jej mipmapy na zem, nech nám to ubieha pekne perspektívne do diaľky a začnime kráčať. Eh, vidíme zreteľné, ostré prechody medzi jednotlivými mipmapami, vyzerá to ako keby ste pred sebou "tlačili" za sebou položené textúry - dlaždice s rozdielným rozlíšením /viď Qvak 3 obrázok vyššie/. Riešenie - trilineárny filtering. Jednoducho si predstavte, že jednotlivé mipmapy sú akože veľké texely a hľadáte ďalšie aritmetické priemery medzi nimi. Výsledkom je monolitická textúra bez zjavných narušení integrity s plynulou stratou detailov /rozlíšenia/. Štandardná súčasť výbavy dnešných GPU, dnes prakticky nemerateľná spotreba výkonu, bez poklesu fps.

na PS4ke sa masovo vyskytuje prvý menovaný alogoritmus, druhý kvalitnejší často "záhadne" chýba

"Bilineár" aj "trilineár" sú tzv. izotropné techniky, proces úpravy pixelov je v každom smere rovnaký, ide o virtuálny štvorec, box. Bohužiaľ 3D priestor sa na pravé uhly a ideálne podmienky príliš nehraje a nás trochu mrzí aj strata detailov našej bilineárne/trilineárne filtrovanej textúrky so vzrastajúcou vzdialenosťou od nás. To by nevadilo pri 5 kilometrov vzdialenom horizonte, my však hovoríme už o 3-5 metrov, na koberci v izbe. Anizotropné filtrovanie. Ako hovorí názov - an/iso/tropic = nefiltrujúci ROVNAKO v každom smere ako vyššie uvedení bratia. A filter box nemá štvorcový tvar, skôr je to lichobežník a podobne paralelogramy. Na konci je textúra /s mipmapami/ stále plynulo bez rušivých prechodov ubiehajúca do diaľky, avšak so zachovanou high frequency /detail/ informáciou textúry. Štandardná technika dnešných GPU, variabilná spotreba výkonu a pokles fps v závislosti od vzdialenosti, do ktorej chceme ostrosť zachovať - vzorkovanie 4x, 8x,16x. Osmička je sweet spot, môžte to však dynamicky meniť podľa náročnosti scény a dostupných kapacít GPU/vram priepustnosti.

---------------------------------

Základná teória je za nami. PS4 má objektívne šikovné a moderné GPU - tak kde je ten problém ? Je v prekvapujúco vo veľmi častej absencii AF v PS4 hrách /a to dokonca aj v natívnych hrách ako The Unfinished Swan HD, ktorý paradoxne AF na PS3ke má. Situácia je o to zábavnejšie, že multiplat gamesy bežne AF na XO /oveľa slabšie GPU/ obsahujú, na PS4ke ale po ňom nie je ani stopy. Avšak TLoU: Remaster pre PS4 - až 16xAF !!. Teraz sa v tom vyznaj, tento chaos spustil na neogafe alebo beyonde3d konšpirujúce špekulácie a žiadenie si odpovedí od SONY. Aj sa im jednej dostalo priamo z úst progiša SONY ICE teamu, ktorý citujem hovorí: "PS4 GPU je bez problémov schopné až 16xAF". Nuž to vieme, prečo však chýba tam, kde ho anemické XO bez problémov dostane ? Nejde o HW chybu dizajnu, ani o nedostatok priepustnosti ram. Na PC GPU s polovičnou BW /bus bandwidth/ ako PS4 GPU v tej istej multiplat hre to AF nájdete, aspoň na úrovni 4x. Na PS4ke iba jednoduchý trilineárny filtering. Podľa mňa išlo od začiatku o problém s PS4 GNM/X API - prevod shader kódu, profilov z DirectX WinPC "vývojarského" prostredia alebo middleware, no ale hovorte to deťom.

"Having read some documents recently I'm about 95% that it's an API misuse issue (ie. not HW related)." - Fafalada /rešpektovaný a známy herný progiš, ktorý svojho času hviezdil aj na PS2ke/

Našťastie nás pred hanbou zachránili poliaci s hrou Dying Light - "However, the PS4 version suffers from a disappointing lack of anisotropic filtering, with oblique angles producing much sharper
texture work on Xbox One
". Ide o bežnú multiplat shitku, ktorá na PS4ke beží v stabilnom 1080p/30 režime avšak bez stopy po AF. Klasika. Stala sa však jedna nenápadná vec. Najnovší patch v1.50 dodatočne pridal do PS4 verzie vysoký stupeň AF, pravdepodobne až na úrovni 16x, určite 8x /nepochybujem, že DF z eg.net sa k tejto hre ešte v analýze vráti/ !! To definitívne potvrdzuje teóriu tzv. "chyby v preklade" a vyvracie bludné teórie o chybnom HW dizajne, nedostatočnej priepustnosti, obetovaní efektov pre dosiahnute FHD rozlíšenia a podobne. Ide vlastne o rovnaký problém ako v prípade zlého framerate pacingu /časovanie 30 fps hry pri 60Hz display refresh/, tiež relatívne častejšie na PS4ke. A to je všetko, pokus urobiť z komára somára nevyšiel, búrka v pohári vody, mŕtva kačica.

31/01/15

Sandbox - 1080p60


Tento prestížny grafický režim je zatiaľ na next gen konzolách rezervovaný iba pre niektoré "jednoduché" hry ako tunelové FPS /Metro 2033: Redux/, okruhové autá /Project Cars/, SHMUP /Resogun/, športy /NBA/, lineárne TPS akcie /TLoU:R/ alebo izometrické PS2 prkotiny /Diablo 3/ a to všetko hlavne na výkonnejšej PS4ke. Pomyselným zlatým grálom je však dosiahnutie rovnakého rozlíšenia a plynulosti aj pre sandbox projekty akéhokoľvek typu. Technicky ide o jasne ambicióznejšie ciele. Kód hry musí napríklad rátať s nepredvídateľným pohybom hráča, jeho koňa a blbých NPC v celom dostupnom priestore a zároveň efektívne vyriešiť streaming obrovského množstva dát z pomalého 2.5 palcového HDD.

Ak sa mýlim, tak ma opravte, ale sandbox hry pre PS4 ako - Infamous, Far Cry 4, Assassin's Creed IV: Black Flag, Saints Row 4, Dragon Age: Inquisition, Middle-earth: Shadow of Mordor, The Witcher 3: Wild Hunt, GTA 5 HD, Dying Light /DL /bežia všetky zhodne na najnovšej playstation mašine v 1080p/30+fps móde. Solídny výkon na prvogeneračný soft, nič nenamietam. Eurogamer.net /Digital Foundry/ hlási, že na "identickú" úroveň detailov v hre DL ako na oboch konzolách pri hernom PC potrebujete aspoň Intel Core i3 + Nvidia 750 Ti. Tá Nv grafika má inak tabuľkový výkon na úrovni 1. 3TFLOPs, 16 x ROPs, 40 x TMUs /takmer na chlp presne ako XO GPU a o 550 GFLOPs, 16 ROPs, 32 TMUs menej než podstatne lepšie PS4 GPU/ a je zavesená na biedne VRAM s 128 bit zbernici o priepustnosti 86.4 GB/sec, čo je opäť polovica PS4 GDDR5 a oveľa bližšie ku sociálnemu Xbone. Hovädo z DF nám teda nepriamo prezradilo, že DL na konzolách nie je brzdené ich Jaguar procákom /PS4 beží napriek "najslabšiemu" CPU v natívnom fHD na rock solid 30fps, kým XO padá na hubu v subfHD okolo 25-30fps/ a tiež to, že PS4 GPU sa tam iba tak lenivo prevaľuje.

Oveľa prác na hernom kóde si pri multiplat hrách vyžaduje Xbone s jeho nespochybniteľne pomalším GPU a stupídne malou eSRAM. MS musí úzko spolupracovať s vývojármi /tí zas strácajú čas s XO na úkor PS4/ a radiť im ako to tam majú napchať. Je to nekonečná hra o kompromisoch. Nároky rendertargets /grafické buffers, časť vyhradenej vram/ o aspoň minimálnej fp presnosti a farebnej šírke stúpajú aj priamo úmerne s rozlíšením obrazu. Xbone teda musí obetovať natívných 1080p, ak si chce zachovať identickú kvalitu obrazu ako PS4, aj keby na to nejakým zázrakom mal dostatočný ALU-shader výkon, čo rozhodne nemá /XO 768 versus 1152 PS4 SIMD jadier/.

štandardná PS4 sandbox hra = 1920 x 1080 x avg. 40fps

Netušíme, aký je skutočný, priemerný, "odomknutý" framerate toho Dying Light na PS4ke, kľudne to môže behať okolo 35-45fps, čo je náhodou tá istá performance ako PS4 only sandbox hra Infamous, konkrétne datadisk First Light /ten sa hýbe v priemere o 10-15% lepšie, než Infamous: Second Son, dodatočne to ešte viac optimalizovali !!/. Predpokladám, že Infamous: First Light zaťažuje hardvér PS4ky o "trochu" drsnejšie ako poľský Dying Light farby bizonieho hovna. Čiste akademicky, by teda na Infamous: FL engine mohol DL posunúť bližšie ku priemerným 50fps a možno aj za nich.

A konečne sa dostávam ku tým bájnym 1080p60. Určite je vám známy obrovský technologický rozdiel medzi GTA 4 a GTA 5 na platforme PS3. Obe hry tam bežia cirka na 25-30fps, GTA 4 však v rozlíšení 1152x640 /cca 737K pixelov/ a GTA 5 v natívnych 1280x720 /cca 922K pixelov, +25% !!/ pri neporovnateľne lepšej "grafike". Je úplne v moci špičkových SONY kodérov dostať poľské DL na 60 fps už dnes, pri zachovaní tej istej grafiky, aj bez trikov s dynamickým framebufferom. Ostatne majme na pamäti sandbox Driver: Cisco /1120x720x60fps/, ktorý práve na PS3ke s X360 v stress teste hladko pozametal špinavú dlážku. Dosiahnutie maximálneho rozlíšenia a ideálnej 60fps "arcade" rýchlosti je teda na PS4ke iba otázka rozhodnutia vývojárov, nie výkonu hardvéru, ten našťastie tiež nie je žiadna chudinka. Obávam sa však, že sa k tomuto kroku asi nikto z veľkých SONY hráčov neodhodlá a ak nerátam malé indie veci ako Flower HD, tak zopár percent šance dávam iba AA sandbox PS4 hračkám - NMS a Wild. Ešte si však radšej pre šťastie odpľuvnem cez ľavé plece.

24/01/15

Playstation 1 vs Playstation 4


Dvadsať rokov je jedna štandardná, ľudská generácia, štyri na "rýchlejšie" žijúcich herných konzolách. PS1 aj PS4 boli jasne vykonnejšie než mainstreamové herné PC, každá v tomto svojom čase, zároveň ďaleko lacnejšie avšak ku jednej dôležitej zmene za tie roky predsa len došlo - v roku 1994 stálo herné PC bok po boku konzolám, priam na vrchole síl, diktujúc trendy, dnes už iba biedne živorí v ich tieni. Je však schopná PS4, ktorá samotná nesie na pleciach drvivú väčšinu relevantného AAA gamebizu, konkurovať prvej konzole, čo hovorím - najlepšej prvej 3D konzole všetkých čias, nedotknuteľnej - Psone. Hry. Ani by som nepovedal. Najprv však malé hardvérové bratrovražedné rošambo v troch základných bodoch CPU, GPU, RAM, aby tá porážka PS4 vyznela o niečo dramatickejšie.

PS1 /štart koniec roku 1994/ - použilo ako základ CPU MIPS R3000A z roku 1988 /20 až 40MHz/ v upravenej verzii R3051 na 33.8688 MHz, starý ale kvalitný a stabilný procák prítomný aj v mnohých IRIS/INDIGO SGI pracovných staniciach, veľmi jednoduchý dizajn orientovaný na vysokú efektivitu. Od jesene 1991 respektíve 1992 sa do obehu dostali R4000 /100 až 200Mhz/ a R4400 čipy /po roku 1995 sa vyšplhali ku 250Mhz/. Ohromne výkonné a drahé vecičky. O R4000ke pritom SONY vážne uvažovalo, cieľom však bola šokujúco nízka cena konzoly, vyhrala teda R3000ka a naopak VR4300ku na 93.75 MHz dostala konkurenčná N64 /štart leto 1996/. Rok 1994 bol pre herné PC tej doby tzv. DOOM rok ale mainstream to iba s veľkým  šťastím hral "nehrateľne" v drobnom low-res okne na prašivých i386/33-40Mhz šunkách. Na Psone to samozrejme bežalo vo vylepšenej grafike hladko ako na mainfrejme od NASA /neskôr aj Quake 2 dokonca v quad splitscreene/. Inak za prvých päť rokov s PSone som nečítal toľko kecov o slabom CPU ako pri PS4ke už za pár dní, ešte než ju vôbec začali predávať.

PS4 /štart koniec roku 2013/ - prekérna situácia. PS4 zohľadniac infláciu stojí menej ako už tak dosť lacná PSone !! /299USD za PS1 v roku 1994 + inflácia do roku 2015 = cca 480 USD/. Za B sa do 150 watt TDP musí prednostne vojsť viac žravé GPU a za C sa CPU a GPU spojili do jedného APU na spoločnom substráte /ekonomické dôvody, pri zmene výrobného procesu sa zmenšuje-zlacňuje CPU a GPU naraz a na jednej linke/. Splniť tieto kritéria dokázalo iba jedno CPU. Žiadne ani len špekulatívne varianty tu na výber neboli. ARM nemá výkon, 64 bitov a zrelosť technológie, intel je príliš drahý a tak dobré APU /GPU/ ani nemá na sklade. Takže 8 jadrový Jaguar na 1.6GHz krčiaci sa na maličkej ploche s veľkým 100+ watt GPU /technická - na MB je aj druhé pomocné ARM CPU vyhradené pre OS funkcie s vlastnou 256 mega ram/. Aby nedošlo ku omylu - ten Jaguar je aplikačne herne výkonnejší ako 8 jadrový CELL na 3.2Ghz a per hertz len o málo zaostáva za porovnateľnými intelmi. Tiež by som si želal aby to v PS4 šlapalo na obligátnych 3.2GHz /o výkone by nikto ani necekol/ alebo aspoň na "maximálnych" 2.0Ghz na 28nm procese v APU režime. PS4 by sa však posunula s TDP za 200 watt hranicu. Nerealizovateľné.

PS1 GPU - špeciálna vecička a najlepšie GPU svojho konzoláckeho času široko ďaleko. Ak ste nemali na stole nesmierne drahé Pentium /odporúčam aj nejakú "3D" grafickú kartu/, tak aj s ninja i486kou na 100MHz ste si pri PSone ani len neškrtli, viď Unreal časť videa. PS1 GPU na to išlo od lesa. Cieľom bol maximálny polyrate, fillrate, veľmi rýchla a flexibilná vram. Obetovali všetky grafické kudrlinky ako perspektívna korekcia textúr, bilineárne filtrovanie textúr, subpixel presnosť transformácie vertexov, HW Z-buffer a mnoho ďalšieho. Získali sme charaktericky neotesaný vzhľad PSone hier a zároveň pekelnú rýchlosť a voľné tranzistory pre hlavné "secret sauce" tajomstvo - GTE /Geometry Transformation Engine/. HW akcelerácia transformácie a nasvietenia alias HW T@L, ktorá na PC dorazila až niekoľko generácii neskôr /Nvidia Geforce 256/. Podobný GTE modul ako psone mali aj tie IRIS/INDIGO mašiny, tam po názvom ELAN. PSone bola naozaj grafická pracovná stanica špecializovaná na hry natlačená do maličkého zlomku ceny tých CGI monštier.

PS4 GPU - unikátna situácia. Ide o plne vybavené, "neorezané", naozaj moderné, skvelé a špeciálne HW/SW upravené GPU /vlastné API a extenzie ďaleko za možnosťami DX11, SM 5.0/, ktoré je v ostrom kontraste s kompromisným PS1 ale aj PS2 /monster fillrate, absurdne rýchle alfa efekty avšak žiadne klasické pixel-vertex shaders/ a PS3 GPU /tzv. "orezaná" grafika s polovičným pixel-vertex výkon na pomalej vram/. PS4 GPU má všetko a zároveň žiadnu slabinu a k tomu ako future proof darček v podobe vyladeného GPU ACE enginu pre budúce GPGPU, direct compute hry s kódom.

PS1 RAM - 3 a pol mega rozdelené v pomere : 2 mega pre systém, 1 mega pre grafiku /+2KB keška pre textúry/, pol mega pre zvukovku, CD romka mala 32KB buffer a EPROM pamäťovka 128KB. To len pre úplnosť. Obdobná veľkosť RAM bola aj pri konkurenčnom SEGA Saturn a omnoho modernejšej N64 /ten to mal v jednej 4 megovej rambus banke/, obe však mali hry využivajúcu aj dodatočnú až 4 megovú RAM expanziu. PS1 CPU si muselo vystačiť s 4KB dátovovou a 1KB inštrukčnou kešku. Rýchlosť zbernice do hlavnej ram - 132mega/sec. Ako sami vidíte s veľkosťou či rýchlosťou PS1 pamätí sa nedalo príliš pohnúť, išlo o vtedajšie maximá, dokonca štandard aj v hernom PC mainstreame /DOOM 1 žiadal od PC aspoň tie 4 kolíky RAM a to skutočne vtedy každý nemal/.

PS4 RAM - podobne ako pri GPU máme opäť neuveriteľne šťastie /načasovanie/ - 8 gigabajtov GDDR5 na 176 giga/sec, hUMA /unifikovaný adresný priestor, zero-copy transfer medzi CPU-GPU/, 2+2 mega L2 keška o veľkosti väčšej než všetka RAM v PSone dokopy. Jedna pamäťová banka, jeden typ pamäti. Jasné, že by ma potešilo pracovná frekvencia GDDR5 na úrovni 6GHz a teda priepustnosť 192 giga/sec ale všetko mať nemôžem. Kľudne nás mohol postihnúť rovnaký osud ako XO a teda klasická, pomalá systémová pamäť, povinne ako kompenzátor malá eDRAM/eSRAM a vynútená redukcia plochy GPU = razantné zníženie výkonu celého systému.

Driver 2 /4000 polys na frame, PSone/ - FF15 /4000 000 polys na frame, PS4/

PS1 hry. Neprestáva ma ani dnes prekvapovať nevyčerpateľná kapacita tejto excelentnej konzoly. Náhodný príklad. Ridge Racer 1 je stále dokonalý /a neskôr ho Namco dostalo aj na 60fps a pridalo 50% pixelov rozlíšenia navyše/. Kto nemá rad tunelové autička a pochybuje o PS1 zobraziť free-roaming priestor. Hľa - Driver 2 /to báječne autentické pohupovanie auta ala roky 70te/. Hovoríte, že tam tá krajina príliš doskakuje a PS1 už neutiahne viac akcie na frame. Hneď to napravím - uchvatný Twisted Metal 2. Nešlo o náhodný zásah ako ukazuje Rogue Trip, Iron Soldier 3 alebo Terracon. Suverénne divadlo, z pohľadu master race PC blba, na úbohej konzole s mizerným 33Mz CPU a malou ram.

A ešte pridám plyn. Future Cop:LAPD a jeho herný mód Precinct Assault. Pozrite si srandovné video, "modrá šípka ukazuje smerom na modrú základňu". Áno - je to klasická MOBA hra /multiplayerový mix RTS a tower defence/, ktorú dnes zúrivo a masovo hraje pubertálny dorast hlavne na platforme PC. Objavili ameriku. Na PSone to je patologicky chytľavá záležitosť, k dispozícií je aj split screen režim či boje proti AI. A vlastne na to nepotrebujete ani Psone, ľahučko to zvládne aj 16 bitový Megadrive - Herzog Zwei.

Psone a PS4 sú filozofiou poskladania ich hardvéru a uľahčením práce progamátorom /žiaden komplikované CPU ako Emotion Engine, CELL-SPE, príliš malé eDRAM, "spomalené" GPU/ ako dve jednovaječné dvojčatá. PS4 je samozrejme ďaleko výkonnejšia konzola a to aj ked proporčne amortizujem tých 20 rokov čo ich delí. Potenciál s veľkým P súčasnej PS4 je doslova zahlcujúci. Aj tak však nepochybujem o jednom - PS4 sa ani len nepriblíži ku absurdnej šírke herného portfólia klasických konzoláckych žánrov, ktoré nájdete na PSone. Skúste si tipnúť koľko "autičkových" hier /arcade, simcade, destroyage/ nájdete na PSone, tento žáner na PS3 /a vzápätí na PS4ke/ bojoval o prežitie. Čakám vaše tipy - 50 hier, 100, 150 .. 200. Musíte poriadne pridať, teraz padnite na kolená a chváľte pána, lebo aj polo-neznáme Psone hry B katégorie behajú okolo súčasnej rozpačitej hernej snahy PS4 víťazoslávne kolečko olympijského šampióna. Psone stále zvládne akúkoľvek dnešnú mainstreamovu next gen hru, stačí ukázať prstom.

12/12/14

Pixel Fill Rate


Zastaraná jednotka výkonu grafickej karty najčastejšie udávaná v miliónoch pixelov za sekundu. Zoberte si také 8 bitové ZX Spectrum a jeho hru v rozlíšení 256x192 pixelov /CPU inak samo prakticky bez podpory ťahá herný kod, tvorby grafiky aj 1 bit audio/, ak by ste chceli celú túto obrazovku animovať 50 krát za sekundu /PAL norma/ tak potrebujete "GPU" čo zvládne 2.5M pixelov/s. Ohromné číslo. A kde sú ešte desiatky, stovky sprajtov, nedajboh prekrývajúcich sa "transparencií". V troch rozmeroch sa na PSone situácia ešte oveľa zhorší, každý pixel obrazovky sa od vás vyžaduje o podstatne viac práce a ešte potrebujete zaplniť dve framebuffery. Asi nikde na internete nenájdete presné číslo PS1 fillrate, aj keď hrubý výpočet tohto parametru je technicky jednoduchý: pixel fill rate = (počet ROPs - raster jednotiek) x (pracovný kmitočet pixel jednotky GPU). PS1 CPU beží na 33.8685Mhz a PS1 GPU na 26.6015Mhz, čo nám pri jednej predpokladanej pixel jednotke dáva fillrate cirka na úrovni 27Mpix/s. Pre zaujímavosť - úplne prvá verzia 3Dfx čipsetu Voodoo 1 /nekomerčná, pre arcade kabinety/ bežala na 40Mhz, pre koncového uživateľa /napríklad Diamond Monster 3D/ na 50Mhz a ja som ju mal stabilne s lepším chladením pretaktovanú na 56Mhz - toto krát jedna pixel pipelajna nám dáva teoretických 56 mpix/s a takmer presný dvojnásobok Psone /viď aj nedokončený 3D amiga čipset HOMBRE/.

Malá vsuvka. Ako asi viete, PSone nemá klasickú podporu pre 2D grafiku, takže akákoľvek 2D hra so stovkami sprajtov namiesto nich používa "3D engine", kde sprajt je vlastne trojuholnikovitý /triangle/ alebo štvorcový /quad/ polygón s textúrou !! Pri Psone sa udáva maximálne polygónový výkon niekde medzi 180 000 a 360 000 polys/s. Čiste pre zjednodušenie si to dajme na nejakých 240K/s a teda  4000 polys na frame pri 60Hz NTSC hre. Zázračnou zhodou "náhody" je v špecifikáciach PSone pri "sprajtoch" uvedené presne toto isté číslo a stačí bohato na pravé sprajtové peklo.

"GTA3 on the PS2 had not even backface culling, as fillrate never was an issue. When they ported to PC, they had quite some fillrate issues."

Playstation 2: 16 pixel jednotiek krát 150Mhz GPU = 2400Mpix/s. Asi 100 násobok PSone, neuveriteľné !! Práve v tomto okamihu musíte začať riešiť aj nepríjemný fakt ako tu masu dát preniesť z bodu A do B. Výkon vášho pamäťového systému. Ak chcete plne saturovať tento obludný pixel výkon /kvalitný PC mainstream tej doby - Voodoo 3 hrubo zaostával/ tak potrebujete asi 38 gigabajtov/s len pre textúry a aspoň 10 giga/sec pre framebuffer. Opäť pre porovnanie Voodoo 1 disponoval asi 400 mega/s a Voodoo 3 cirka 2.5 giga/sec do svojich vram. PS2 to dokázala /a v tomto rozsahu ide o ojedinelý jav/ iba vďaka použitiu eDRAM so super širokou 2560 bit zbernicou /20 násobok bežného PC priemeru/ a presne s priepustnosťou ktorú potrebovali 38.4 + 9.6 giga/s.

Playstation 3: 8 pixel jednotiek krát 550Mhz = 4400Mpix/s. Ani nie je dvojnásobok toho čo PS2. Slabota. Otázka zneje prečo ? Pôvodný, hypotetický dizajn PS3 rátal s GPU v konfigurácií 16 ROPs a teda 8800Mpix/s na 256 bit zbernica - cca 45 GB/sec, dostali sme však presne polovicu. Na prvom mieste išlo o ekonomické dôvody, proste PS3 netrafila to správne obdobie nekonečného cyklu nerovnováhy /večný tanec medzi harmonickým CPU, GPU a mem systémom/. Fillrate PS3ky je teda veľmi nedostatočný a čo viac, tých 4400Mpix/s potrebuje aj tak vram s 70GB/sec priepustnosťou. Viac a viac sa zvýrazňuje problém s nedostatočne výkonnými pamäťami /sekundárne aj zbernicami/.

 polygóny, textúry, pixel shaders

Malá vsuvka. V tejto generácií dochádza ku zásadnej zmene pohľadu na spôsob "výpočtu" hodnoty základného grafického primitíva. Pri starej 16 bit konzole bol "pixel" uložený ako statická bitmapa v ROM kártridži, pri PS1/PS2 zas kus textúry na CD/DVD. Na PS3ke sme sa pohli trochu vpred. Shaders, algoritmus čo ráta farbu a polohu pixelu, bez toho aby ste na jedno miesto nanášali otrocky desiatky textúr. Aj tak by ste tie pokročilé svetelné fenomény bez úžasnej spotreby vram a priepustnosti nevedeli aproximovať /refrakcia s chromatickou aberáciou alias mydlová bublina/. Vaše PS3 GPU je konečne schopné veľmi komplikovaných per-pixel výpočtov /10-100+ na pixel pri PS3, 100-1000+ pri PS4/ prebiehajúcich vnútri GPU registrov. Veľmi často sa však stáva, že rasterizačná časť /fillrate/ čaká za ALU jednotkami až sa ku tomu finálnemu pixelu vôbec dopracujú. A dovtedy takmer niet čo "maľovať". A pretože GPU čip nie je nafukovateľný donekonečna, tak sa značná časť jeho tranzistor budgetu vyčleňuje práve v prospech ALUs /shaders/ na úkor ROPs /fillrate/.

Playstation 4. 32x800Mhz = 25 600Mpix/sec. Zhruba 1000 násobok PSone. PS4ka na 256 bit zbernici s 180GB/sec. Reálna požadovaná priepustnosť je pritom niekde na úrovni 412 giga/sec. Nič tak výkonné a zároveň lacné dnes na trhu ale opäť raz nemáme. Aj keď sa to môže zdať rovnako dramaticky zlé ako pri PS3ke nie je tomu celkom tak. Ako som napísal vyššie - pixely sú dnes hlavne o výkone ALU jednotiek /SIMD, FLOPs/. Xbone má polovičný pixel fillrate oproti PS4 a predsa to v hrách /má to samozrejme v prípade multiplat hier svoje logické dôvody / ako do oči bijúcu brzdu neuvidíte /masívny pixel fillrate sa ale aj dnes hodí pre všetky alfa efekty - dym, výbuch, partikle a hlavne foliage, teda zdanlivo, viac neskôr/. Technicky teda skôr než narazíte na obmedzenie v podobe ROPs fillrate, tak vás takmer určite zastaví nedostatočný výkon ALUs alebo mantinely priepustnosti /V/RAM.

Malá vsuvka. Zámerne sa vyhýbam trikom alebo situáciam, ktoré pixel fillrate modifikujú oboma smermi. Geometry/CPU bound, Z-buffer, double-tripple buffer, koherentné cache, TMU, kompresia textur/BW, render target formáty, PMW logika v eDRAM ako pri x360, zdvojnásobenie fillratu zabalením dvoch 32 bit bufferov do jedného 64 bitového, MSAA a G-buffer triky atd. atď., ide mi len o to aby ste pochopili ako sa vývoj grafiky točí dokola a "nevedomky" sa vraciame opäť ku starým postupom len z inej strany a oveľa efektívnejšie.

"Not even the modern BW monsters such as Radeon 7970 GE can reach their full fill rate on particle rendering, because the BW becomes a limit halfway there - 64 bit HDR blending with 32 ROPS at 1000 MHz requires 512 GB/s BW and the card only has 288 GB/s BW."

Budúcnosť. Možné riešenia. Hrubá sila - nenažraté ROPs, ALUs /TMUs, GPGPU tasks atď./ uspokojíme evolučným prechodom na tzv. 3D RAM alias HMC alebo HBM. Namiesto úzkych 128-256-384 bit zberníc na príšerne vysokých kmitočtoch prejdeme na super široké 1024 bit a viac ďialnice na nižších taktoch s nižšou spotrebou a odpadným teplom, ktoré by už o rok mohli pre GPU triedy PS4 bez problémov poskytovať 512GB/sec a neskôr až 1-2 terabajty pre ninja PC high end. Jeden problém vyriešený.

Druhým krokom bude smrť ROPs /rasterizačné jednotky, kontrola fillrate/ a absolútny dôraz na ALUs. Vrátim sa ku Voodoo 1 od 3Dfx. Vtedy sme im hovorili 3D akcelerátory. Blbosť, reklamný žvást. Voodoo akcelerovalo RASTERIZÁCIU, nie "3D scénu", teda nasvietenie a transformácie, to naopak zvládala PSone vďaka GTE hardvéru. Rasterizácia /read-modify-write hry s buffermi/ je dnes už celé veky mysteriózna, neprogramovateľná /!!/ a  veľmi komplexná časť GPU, ktorá sa postará o to, aby sa herný 3D svet transformoval do 2D matrixe vašej obrazovky. Pri starom ZX Spectre ste mali práve nad rasterizáciou totálnu a priamu kontrolu, o ňu sme prišli príchodom stále lepších GPU a košatejších grafických API.

A tú pride ta mňamka. PS4 GPU GCN 2.0 architektúra umožnuje obísť nielen ROPs ale takmer celú klasickú render pipelajnu. Vzletne povedané vás nemusí zaujímať hardverový pixel fillrate výkon, alebo či majú ROPs dosť priepustnosti, ten pixel tam môžte z GPU /ALUs, shaders/ hodiť ako za starých čias rovno na obrazovku /do textúry, UVA DX11+/. Nárast výkonu z pohľadu fillrate kriticky náročných scénach /obligátne výbuchy, dym, alfa, aj voda, atmosferické efekty, particle, foliage/ môže narásť o jeden rád. Nebudem vám však klamať, toto patrí do rúk iba skutočne majstrovských kóderov. A idem ešte ďalej. Do oči nás bije dosť žalostná IQ - image quality hier za posledných 10 rokov bez ohľadu na výkon HW a ako keby práve s príchodom programovateľných pixel shaders. Na vine je hlavne prechod na deferred engine s jeho G-bufferom /vynútený krok - opäť technologický cyklus, ekonomika tvorby hry/ a nekonzistentný rendering skrze početné rendertargets /každý v inom rozlíšení, presnosti, priorite/. Potrebujete teda AA kód osobitne pre geometriu scény, alfu, postfekty, aliasing textúr a hlavne všetkých shaderov.

pixel shader /GPU sa správa ako GPU/ versus compute shader /GPU sa správa ako CPU/

V priebehu poslednej 8.generácie teda v špičkových hrách čakám návrat ku starému, "prvému" ak chcete - forward renderingu /už dnes existuje mnoho vylepšených variánt/, značné časti grafického kódu budú naprogramované ručne a efektívne v "softvérom" režime mimo fixnej HW render pipelajny defaultne uloženej vo vašom GPU. A maximum práce sa bude odvádzať práve vnútri GPU /pre skutočne vyššiu hernú kvalitu je dôležité, aby herná logika+AI+fyzika a grafika bežali na jednom čipe/. A ak sa dožijeme PS5 v podobe domácej konzoly, tak bude niečo v štýle ZX Spectrum na steroidoch - jedno APU /v ktorom v kontextovej HSA symbióze splynie CPU a GPU v jedno telo/ a jeden typ unifikovanej hUMA 3D RAM o gigantickej priepustnosti. K tomu voliteľne aj úplná kontrola nad renderingom doslova s tvorbou vlastného "shader modelu" mimo špecifikácii DX či OGL. Viem si predstaviť, že AAA grafický engine schopný plne absorbovať všetky tieto možnosti bude stáť aspoň 250M euro a dovoliť si to budú môcť iba tí najbohatší z najväčších. Nevadí. Viac miesta pre zdravý stred a spodok, A/AA hry, skutočné inovácie a bezbrehé kambrijské bujnenie predstavivosti herného dizajnéra.

14/10/14

GPU - hodina tanca


Prenesme známu, tanečnú scénu z Final Fantasy 8 /CG animačka, ples pri ukončení štúdia na vojenskej akadémii pre teplošov/ do modernej hry a bežiac v reálnom čase. PS2 tam hravo natrieska stovky panduľákov, aj nejaký ten lesklý mramor, na luxusnú, fyzikálne korektnú animáciu šiat alias cloth physics kontrolujúcu si kolízie s okolím, je však prikrátka. Videli sme už všemožné neherné hlavne PC hi-tech ukážky, v hre to ale skončilo maximálne na jednom vlajúcom plášti batmana. Chceme niečo viac /a ešte viac, cloth fyzika to nie sú len šaty či pulóvre ale aj koberce, záclony, posteľné prádlo, vlajky, igelitové vrecia na mrtvoly, proste kopa zábavnej interakcie s herným svetom/.

Havoc cloth demo - 25 tanečníc na 60 fps, povedzme rovných 50 na 30 fps /aj keď takto lineárne to v praxi nefunguje/ na štandardnom PC z roku 2009, asi nejaké intel server monštrum. Ak by ste chceli vedieť, ako by si s tým poradila 7. či 8. generácia konzol, tak pri vyhradení 5 ms z CPU času /30fps hra potrebuje na jeden frame 33ms, táto naša simulácia si teda pre seba rezervuje asi 15% z tohto budgetu/ by podľa najnovšej prezentácie od Ubicrap - xcrap 360 utiahol 34 tanečníc, PS3 skvelých 105 /CELL power !!/, PS4 - 98 a konečne Xbone 113. Žiadne ďalšie špecifikácie - geometria, rozlíšenie, framerate. Prvým záverom teda je, že PS3 CPU je v tomto type výpočtov monštruózne výkonne a plne na úrovni oboch CPU v PS4/XO, kde ide malá, medzidruhová odchýlka hlavne na vrub rozdielnej pracovnej frekvencie. Druhým je to, že na PS3ke skutočne mohli vzniknuť hry, ktoré by technicky xcrap 360 "nikdy nedal", bez ohľadu "na rozlíšenie".

Staré dobré CPU však už dnes nie je tým najvýkonnejším čipom na matičnej doske. Rozdiel vo výkone medzi PS4 a XO je v skutočnosti väčší ako hocikedy v hernej histórií  /amiga versus atari ST, PSone versus N64, PS2 versus Gamecube a podobne/. Nielen Ubicrap si povedal, že už keď tu máme tie next gen GPU s GPGPU vlastnosťami /jednoducho povedané - schopnosť behu CPU kódu na grafickej karte/, tak to vyskúšajme, ako sa to dá aplikačne-herne využiť. Po prebehnutí základného výzkumu /komplikované testovanie dátových formátov, rôznych API - NV CUDA, OpenCL, optimalizácie kódu, GPU skutočne nepracuje ako CPU/ padľa voľba na DX štandard Direct Compute v AMD GCN variante. Výsledný algoritmus mal 3100 riadkov, 69KB, veľmi precízne a prácne ladený /hlavne čo, kde a ako bude uložené, tok bajtov/. PS4 v tomto smere neprekvapujúco boduje, lebo umožnuje nižší low level prístup ku hardvéru /síce o dosť náročnejšie pre programátora, ale s razantným nárastom výkonom/. Finálny výsledok vás asi dostane do kolien.


Pri stále rovnakých podmienkach /5ms ale v tomto prípade GPU času/ zvláda PS4 - 1600 a XO - 830 tanečníc /prakticky o 100% silnejšia PS4 !!/ alebo ak sa máme vrátiť na úplný začiatok, tak PS4 určite zvláda teoreticky 640 tanečnic/320 párov na 30-60 fps ? /2ms z GPU času a bohatá rezerva pre zvyšok hry/, čo nám bohate stačí na báječnú scénu s bálom z FF8 vo francúzskych Versailles. To by nás však nemohol brzdiť slabučký Xbone. Ten dramatický rozdiel je spôsobený týmito premennými - PS4 má viac SIMD ALUs /+50%/, má ďaleko výkonnejší ACE engine, ktorý ich obsluhuje /+400%/ a lepšie zorganizované zbernice a pamäťový systém /PS4 ram je rovnako rýchla v celom svojom objeme, pri XO iba v 32 megovej eSRAM/. Už som to tu mnohokrát avizoval, že až dôjde na lámanie chleba, teda moderný presun kódu na Direct Compute /GPGPU/ nebude mať XO pri PS4ke sebemenšiu šancu. Akýkoľvek pokus MS o paritu v natívnych next gen hrách, žiadne cross gen blato, je teda jasným poškodením PS4 hráčov. Zvykajte si. MS totiž platí Ubicrapu časť reklamnej kampane pre Assassin Greed: Parity.


Mark Cerny navrhol PS4 primárne ako Direct Compute konzolu vyladenú na simultánny beh grafiky a non-grafiky na PS4 GPU /PS4 CPU tiež nie je žiadna padavka, ako sa vám niekto snaží nahovoriť, utiahne ak treba aj desiatky paralelných JOBs na 8 jadrách, herný kód a OS/.  Ide o oblasť, v ktorej sú nováčikmi vlastne všetci. Menej tí, čo majú skúsenosti s heterogénnym spracovaním výpočtov na PS3ke /CELL-SPE/. Pole neorané. Nekonečné možnosti a vôbec to nebude prvé roky jednoduché. Ide vlastne o poctivé, ručné - oldschool  riešenie problémov ako v dávnych časoch softvérového renderingu. Nemôžeme ísť večne pri honbe za zvyšovaním výkonu iba cestou čiste mechanického pridávania ďalších a ďalších tranzistorov a rastu spotreby ďaleko za 100-200-300 watt per čip. Čas pre modifikovaný Moorov zákon: každých 18 mesiacov sa zlepší efektivita behu kódu o 100%.

04/09/14

Krajina, kde zajtra už znamená včera


Roky som bol veľký fanúšik počítačovej /hernej/ grafike - softvérový rasterizér, farebná grafika, ASCII grafika, rozlíšenie väčšie ako 256x192 pixelov, SW/HW sprajty, HW skrolling, blitter, HW T@L, bilineárne filtrovanie, programovateľné shaders, post-AA, screenspace "raytracing", SSAO atakďalej. Tieto časy sú už definitívne preč. So skutočne trpkým sklamaním sledujem desiatky stratených rokov, tu neskutočnú masu energie stále vkladanej do grafiky a iba do grafiky. Ona sama predsa predáva hry /a drahý PC HW/, však. Chystaný Bloodborne PS4 je teda iba krajšie Nightmare Creatures pre PS1 a Black PS2 si pocitovo-strelecky pohodlne vytrie zadok s Killzone:SF pre PS4. Reagujem teda článkami o grafike už iba na podstatné, prevratné zmeny, ktoré sa udejú. The Tomorrow Children /Q-Games/ tou paradigmou síce nie je ale spĺňa kritéria na point of no return udalosť. Poďme ale poporiadku.

James McLaren - 20 ročná prax, toho času šéf progiš v Q-Games, len tak mimochodom pracoval s tou istou firmou aj na OS grafike starej PS3. Už na začiatku roku 2012 ich grafici v aplikácií Octane renderer vytvorili pracovný koncept grafiky pre novú PS4 hru /viď obrázok nižšie/. Octane je inovátorsky tým, že ide o GPU renderer /a pokiaľ viem iba na Nvidia grafikách/. Je veľmi rýchly, technicky ide raytracing a radiositu, teda globálnu ilumináciu v "reálnom čase". Áno, v tom video bola použitá quad SLI NV Titan zostava /cirka 20 TFLOPs výkonu/ a spracovanie jedného frame stále nejakú tú sekundu trvá. My však chceme, aby nám to na PS4 /nie viac ako 2 TFLOPs aj s ACE/ zvládla presne v tejto kvalite a minimálne na 30fps v 1080p. Spoiler -  v celom rozsahu sa im to podarilo, aj s patričnou rezervou do budúcnosti. Dnešné, stále ešte super moderné, Tile-based deferred alebo forward PLUS shading/lighting engines pritom na podobný výsledok s použitelným framerejtom rozhodne nestačia. Muselo sa vymyslieť niečo úplne nové.

koncept grafiky hry The Tomorrow children /Octane renderer/

V tomto konkrétnom prípade ide vlastne o to, nájsť čo najrýchlejšie a pritom dostatočne presné riešenie pre globálnu ilumináciu /GI/. A pretože sa s týmto pojmom budeme stretávať v ďalších rokoch na dennej báze, tak to veľmi jednoducho vysvetlím aj pre laikov medzi nami. Situácia. Je úplná tma a vo svojej izbe zapnete lampu /vaše oči vidia iba vďaka odrazenému svetlu, vždy teda potrebuje istý zdroj žiarenia/. Vzápätí sa fotóny rozbehnú po cimre, odrážajú sa, lomia, pohlcujú až do úplne absorbcie v materiáloch. Pritom produkujú všetký tie svetelné a tieňové fenomény. Odlesky, lom, rozptyl, mäkké tiene, svetlo aj pod posteľou, kde sa priamo dostať nemohlo ale viacnásobným odrazom /bounce/ bez väčších problémov. A toto je vlastne to, čo sa snaží v našom prípade herná GI napodobniť. Je to príšerne komplikované, neuveriteľne náročné na systém /ALU, pamäť/. Neexistuje jedno zázračné "globálne"  riešenie, rôzne tímy majú rozpracované všemožné postupy ako výpočty urýchliť. A všetko nám nesmierne komplikujú pomalé CPU a hlavne archaický dizajn našich GPU /polygon-rasterizácia/, ktorý sme zdedili od tých úplne prvých grafických kariet.

Čo teda máme. Unreal 4.x engine spopularizoval SVOGI /Sparse Voxel Octree Global Illumination/. Geometria scény sa virtuálne voxelizuje, hierarchizuje a svetlo sa snaží maximálne znížiť-optimalizovať počet nutne spracovaných vzoriek. Výsledky sú opticky výborne, bohužiaľ nároky na HW neúnosne vysoké, jedna NV Titan je skutočne iba sociálne minimum. Vývoj však nespí. VCT /Voxel cone tracing, zhodou náhod opäť Nvidia/ nie je až tak presný a treba poriešiť niektoré nové problémy, je však omnoho rýchlejší. Pre low-end PS4ku ale stále nepoužiteľné. Potrebujeme super optimalizované riešenie, 100% natívne pre AMD GCN 2.0 architektúru upraveného PS4 GPU.

SONY ponúklo jeden nápad /strana 50/ a Q-Games sa nakoniec našlo v technike Cascaded Voxel cone tracing s využitím 3D textúr plus akcelerácia hardvérovým PRT, paradoxne s využitím rasterizácie a dokáže to 3-bounce odraz svetla. A to je v hernej aplikácií svetový rekord, o svetelný rok pred GI v Crysis 3 od Cryteku. Ten Octane obrázok hore teda PS4 teraz pohodlne dá priemerne na 30-40fps v 1080p. Ako vidíte James pri programovaní nového prevratného grafického enginu až tak naslepo nešiel, "stačilo" to iba dať dokopy z dostupnej bohatej dokumentácie a mohutne optimalizovať, ako je už na konzolách dobrým zvykom. Prvé ich prototypy boli pochopiteľne stále veľmi pomalé a museli vymyslieť množstvo zlepšovákov vrátane veľmi aktívneho /de fakto povinného/ využitia ACE enginu PS4 GPU, ktorý patrí medzi svetovú špičku a výrazne prekonáva jeho variantu v Xbone. Čo je vlastne to ACE tu vysvetľujem už po desiatykrát, ide však o srdce PS4 GPU, takže na to idem ešte raz.


Tie svetlo modré bazmeky v ľavom, hornom kvadrante sú naše SIMD GPU jednotky /GPU subprocesory alias ALUs, PS4 ich má vyše 1100/. Proste mnohopočetné a vysokotaktované vecičky, cez ktoré preženiete svoj shader kód /jeho výstupom je more pixelov o nejakej hodnote-farbe na istej pozícií frejmu, proste "grafika"/. Čas teda beží /ľavý, dolný kvadrant/, SIMD makajú - ako vidíte, nie všetky a nie vždy. Grafická pipelajna nie je len o práci ALUs ale aj o rasterizačnom module, vtedy majú ALUs občas aj milisekundu pauzu. A navyše rasterizačná časť to často sama hrubo "nestíha", lebo tranzistory sa prednostne strkajú do ALUs, nie do ROPs, TMUs - takže vertex setup, ROPs/fill rate, texture filtering jednotky nám to celé pozastavia, lebo potrebujú viac času na urobenie svoje práce. V pozadí je teda veľa voľných, nevyužitých ALU úsekov a o tie nám tu ide.

"Direct compute based graphics means  
it's not using the graphics pipeline, just the shaders."

Nastupuje ACE. Asynchrónny compute engine. Práve do tých voľných "dier" vkladá "prácu-jobs" - tie červené, zelené, žlté kocky, čo môže byť vlastne čokoľvek - AI, fyzika, audio a aj grafika. ACE časť PS4 GPU je veľmi premakaná, posilnená, rozšírená, vysoká granularita /ACE je schopné plniť aj "malé dierky"/ a PS4 GPU má dosť ALUs na to, aby sa vždy našlo zopár voľných, pracovných cyklov. Pri každej hre na PS4ke je vysoko odporúčané využívať ACE nadoraz. Je tu skrytý ohromný future-proof potenciál /okrem iného môže ACE grafika vo veľkom rozsahu obchádzať limitujúci HW rasterizér a správa sa vlastne ako softverová rasterizácia neobmedzená mantinelmi DX API či shader modelom, návrat ďaleko pred rok 1999 !!/. Keď svojho času tlusťoch GABE z Valve bojoval proti CELLu, tak netušil, že ACE a celé dnešné GPGPU je vlastne pokračovanie CELL filozofie - asynchrónne, heterogénne programovanie.

Medzi-zhrnutie. The Tomorrow Children /TTCH/ beží na prvej verziu home-made GI enginu, ktorý generuje mimoriadne dobre vyzerajúcu grafiku a zároveň firme ušetrí kopu peňazí /už plánujú mnoho vylepšení, hlavne sa chcú zbaviť screen space hackovania, dať tam menšie voxely, lepšie kaskády a bias priestoru či "dlhšie" tiene/. Doteraz ste sa museli hodiny ručne hrať s množstvom pseudo GI grafických fines, ktoré TTCH generuje automaticky, lebo sa snaží o čo najvernejšie simulovanie správanie svetla a jeho interakcie s materiálmi. Prirodzené nasvietenie, odlesky, skutočné zrkadlové odrazy, mäkké tiene teda vznikajú samé od seba a nepotrebujú tam lepiť fake shadow mapy, stovky light máp, IBL GI probes, baked statické tiene. Všetko to strašne prácne ladenie herných asetov, boj s materiálmi, zakázanie zmeny denného cyklu - lebo to situáciu nemiestne komplikuje. 

Záver číslo jedna - dobrá GI /kvalita, rýchlosť/ = skvelý vizuál, ktorý "predáva", menej zbytočnej práce, ktorú si malý dev tím aj tak nemôže dovoliť, viac času na art ladenie a samotnú hernú mechaniku. Záver čislo dva - práve hry ako táto neúprosne končia éru, dnes už tragicky nepoužiteľnej kombinácie polygón-rasterizácia. Hľadáme nové výkonnejšie grafické primitívum /pixel, čiara, trojuholník, voxel .. čo ďalej? - každé z nich vlastne definuje, nielen ako to vyzerá, ale aj čo si vaša 2D, 3D, voxel hra môže technicky, herne dovoliť/. Ideme teda smerom sledovania lúča /tisíc variánt raytracingu/, obchádzanie klasickej rasterizačnej cesty /direct compute, ACE, GPGPU/. TTCH používa hybridný engine /nie je to ešte zďaleka tak elegantné riešenie ako by chceli/ - inak sa spracováva statická časť scéna, inak dynamické objekty. Celou pointou tohto článku však je, že tu došlo ku vytvoreniu kompletne novej grafickej pipelajny, virtuálnej /existujúcej iba v SIMD poli GPU/ a časom - v ďalšej generácií konzol by malo dojsť ku jej pretaveniu do HW podoby. Hardvér, ktorého vnútornosti budú mať máločo spoločné s dnešnými GPU /zatiaľ sa nenašla odvaha u PC výrobcov na opustenie klasickej cesty - polygón a rasterizácia, tým hýbateľom pokroku bude opäť nejaká hra-hry na konzolách !!/.
----------------------------------

Zámerne som sa zatiaľ nijako detailne nevenoval techno geek rozboru samotného Cascaded Voxel cone tracing "3- bounce" enginu. Nič vám to totiž nedá, ani pri ferrari sa nepýtate na zloženie pigmentov, z ktorých je vytvorený jeho lak či parametre striekacej pištole. A úprimne vám hovorím, kašlite na kecy okolo grafiky. Jasná konšpirácia. Firmy /soft, či HW/ dobre vedia ako vás zmanipulovať, aby ste rozmýšlali a strácali čas nad blbosťami a príliš sa nešpárali v tom, že herný vývoj už 15 rokov stojí na mieste. Bloodborne je PSone hra. S veľkou slávou PC hráči masturbujú nad cryengine grafikou a mega rozpočtom Citizena, pritom im uniká fakt, že tá hra stále nezvláda herne, to čo oveľa staršie ELITE na 16 bitovej amige. Takže áno - to 100 stranové, komentované pdf o voxel kaskádach je lahôdka a sú tam použité rafinované, optimalizačné postupy. Bežného hráča by to už ale malo zaujímať rovnako ako podobný elaborát o práci kameramana, zvukára a strihača v nejakom mukačevskom ukrajinskom porne. Ale keď inak nedáte.
 
Cone tracing - namiesto miliardy tenkých sledujete malý počet "tlustých" raytrace lúčov /navyše sa ich výsledky čiastočne zdieľajú, recyklujú, ak je medzifrejmový rozdiel veľmi malý/, voxel = 3D pixel, grafické primitívum s diametrálne odlišnými vlastnosťami ako otexturovaný polygón /hierarchizácia statickej geometrie/, so základnou sieťou voxelov sa v TTCH ďalej nepracuje ako so sparse voxel octree stromčekom /na PS4ke pomalé/ ale sa to konvertuje do 3D textúry /kocka z mnohých vrstiev, až 600 megový texture buffer v GDDR5/ a na akceleráciu tej kopy pixelov použili okrem iného AMD novinku - PRT /partially resident textures/ hardvér. To nás síce posúva ku rasterizačnému modulu ale nezabúdajte, že špecializovaný HW v PS4 GPU pre raytracing, voxely tam proste nenájdete. Cascade - istá forma mipmapingu a teda redukcie množstva dat, 3-bounce znamená, že engine simuluje tri postupné odrazy fotónu na scéne /2 pravé + 1 aproximovaný fake/. Bežné herné GI si vystačia s jedným a aj to iba pre hlavné direct svetlo /slnko/, drvivá väčšina enginov za posledných 5 rokov dokonca nemá ani to, iba sa tam ručne nahodí nejaký ambientný odhad napatlaný grafikom. ACE sa správa ako druhé GPU a majú tam plnú prdel screen space grafiky pre objekty - typicky napríklad panduľák alebo iné malé detaily, ktoré ich world space voxel raytracer toho času neutiahne, lebo končí asi pri "40 centimetrovom" voxele, aj toto chcú časom zmáknuť - voxel brick. Uráaa, za rodinu.

Myslím, že tieto technické a nudné informáce vám už musia na dnes stačiť, v budúcnosti sa bavme hlavne o next gen hernej mechanike, aby mi brada nepadala od nudy pri pohľade na dnešné "teh 8 giga GDDR5" hry. Voliť treba proste peňaženkou. Vývojári skočia po tom čo sa predáva. Trend. A hej - ak vám to nebo v TTCH príde smutne šedivé ako mŕtvý kanál CRT telky, tak neprepadajte panike: "There will be plenty of skyboxes in the release version. That's the easiest thing for us to add to, so we will also be updating with different weather and lighting conditions and the like after we launch. We have some amazing sunsets in our latest builds already." Pokurvená grafika a sme opäť v tom.

19/08/14

Antialiasing - boj s veternými mlynmi


Začať tento pokec však musíme bez tej anti predložky. Aliasing v grafike. Vynechajme komplikovanú teóriu, povedzme si to laicky. Obrazovku si nastavíme do rozlíšenia 320x240 /stará dobrá VGA/ v 256 farbách a potiahneme po diagonále na bielej ploche čiernu čiaru. Zreteľné vidíme, že to má viditeľné "schody", či "zuby". Môžme zvýšiť rozlíšenie na 640x480 alebo 1024x768 - porucha v matrixe nepochybne menej zreteľná, stále však prítomná. Takže tie ostré prechody biela/čierna skúsme doplniť nejakým našedlým "medzi pixelom". Vytvárame vlastne anti-aliasing samples /vzorky, viď obrázok nižšie/ a čim plynulejší ten prechod chceme, tým viac vzoriek potrebujeme. A pretože každý pixel obrazovky je zložený z viacerých RGB subpixelov, musíme ošetriť aj tútu nepríjemnosť /týmto sa však teraz nebudeme detailne zaťažovať/.


Náš jednoduchý, herný DOS VGA engine s flat shaded polygónami, teda máme pekne vyhladený. Prilepme tam v druhom diely aj trochu textúr. Ups. Hrany objektov /geometrie/ sú hladké, vnútro polygónov sa však hmýri početnými alias artefaktami. Potrebujeme zjavne antialiasovať aj tento bordeľ /bilineárny, trilineárny filtering, AF, mipmapping a podobne/. Čas pokročil a máme tu progamovateľné pixel shaders. Dafak. Opäť aliasing v inak slušne hladkej textúre na polygóne s hranami tamer bez zubov. Čo to ? No predsa shader aliasing !! Pixel shader je v jadre vlastne kód, ktorý generuje nové pixely navrchu vašich textúr /napríklad odlesky svetla, specular shader = specular aliasing/. A takto to ide stále dokola a dokola. Dokonalý antialiasing /aliasing modernej hry je mnohohlavý drak a vie byť ešte horší, zakernejší ako pri starej PSone/ pokrývajúci všetky zložité situácie a zároveň dostatočne málo náročný na HW je nedostižný, zlatý grál hernej grafiky. Nabudúce totiž rasterizáciu a polygóny nahradí iné, nové grafické primitívum a cirkus sa začne odznova.

"Deus Ex: IW ? It has ingame controls for MSAA, yet it fails to work with the bloom filter which is implemented (I believe) as a render-to-texture effect." - vývojár Laa Yosh /beyond3D/

Zlatý štandard, tzv. hárdverové MSAA má už svoje najlepšie časy za sebou - zlá kompatibilita s najmodernejšími renderovacími postupmi a zároveň aj nepríjemne lineárne narastajúce nároky na systém pri zvýšení rozlíšenia obrazovky alebo počtu AA vzoriek. Inak povedané MSAA 8x  v 1080p rozlíšení /nedajboh 4K/ spoľahlivo anihiluje akékoľvek ninja 1000 watt PC na trhu. Hľadá sa teda flexibilná softvérová "post efekt" alternatíva s rozumným pomerom výkon/cena. Dnešné pixel ALU shaders sú svinsky rýchle a je ich more, tak to využijeme. A tých riešení sa našlo neúrekom - minimálne MLAA, FXAA, novšie SMAA pozná určite každý rozhľadenejší hráč. Ide o veľmi  búrlivo sa rozvíjajúcu sa oblasť. Na dokonalý antialiasing /tm/ je kladené veľké množstvo často protichodných premenných /jedno objektívne dobré AA nemusí a ani nebude fungovať s forward, forward +, deferred, inferred, pre-pass, tiled based atď. atď. enginom/, ktoré musíte rozumným kompromisom uviesť do rovnováhy. A do toho nám spadne nová next gen GPU GCN architektúra HW konzol 8. generácie, ktorý umožňuje psie kúsky ako DCAA /direct coverage samples access/, ktoré nám báječne poslúžia pri dizajne nového, efektívnejšieho, kvalitnejšieho AA. Tento boj sa naozaj nikdy neskončí.

Takže tu máme čerstvý HRAA - hybrid reconstruction antialiasing /Drobot, Ubisoft Montreal/ ušitý na mieru práve GCN GPU grafikám v PS4, či XO. Základné vlastnosti. Temporal Stability - prispôsobenie AA algoritmu pre objekty na scéne pohybujúce sa neharmonicky so snímkovaciou frekvenciou obrazu teda príliš rýchla "vec" a príliš nízky framerate = artefakty, vo všeobecnosti ide o dynamickú stabilitu AA  /systémovo nenáročné MLAA má skvelú kvalitu v statickom obraze, nie už tak v pohybe, vylepšenie v podobe SMAA tento problém rieši, avšak za cenu vyššej spotreby drahocenných milisekúnd, viac nižšie/, High quality Edge Anti Aliasing - dlhé hrany, ostré uhly, foliage, koľko AA riešení toľko slabín, Super-sampling comparable to 4x RGSS - stará Voodoo 5 to milé deti, zvládalo aj HW cestou skrze svoj akumulačný T-buffer, v tomto prípade ide o temporálny supersampling a získanie subpixel AA vzoriek /veľmi dôležité/, Shading cost of 1 sample per  pixel cirka 1ms on PS4 / X1 @ 1080p resolution - brutálne rýchle AA na PS4 hladko pod jednou milisekundu, čo je v porovnaní s MSAA o stovky percent rýchlejšie plus nižšia spotreba RAM.

V praxi, lebo HRAA nepochybne uvidíte v ďalších hrách od Ubisoftu /Far Cry 4 !!/, to znamená - razantne vyššie IQ /image quality/, často na úrovni MSAA 8x pre non-subpixel polygóny, oveľa oveľa menej nepríjemného subpixel shimmeringu, nestabilných tenkých objektov, viac času ponechaného samotnej grafickej pipelajne /ráta sa každý ušetrený zlomok milisekundy/. A vývoj sa týmto rozhodne nekončí - sú tu nové nápady a HRAA sa bude ďalej mohutne vylepšovať. HRAA sa inak dá v jednej rovnici /už keď ste zvedavý prečo ide hybridné AA/ pekne popísať aj takto : TSEAA + SMAA /RT -N,D,L/ + CRAA + AEAA /ev. GBAA/ + TFLIPQUAD + TAA, ev. TFQ + TAA. Jednoduché. A tá "rekonštrukcia" sa zas týka generovanie AA vzoriek znovupoužitím, stochastickou aproximáciou a mixom pixelov starého a nového frejmu ala KZSF engine /ktorý udáva Drobot ako jednu z inšpirácií/. Mimochodom za túto programovaciu techniku sa SONY postaví pred súd /druhý odsek/, Ubisoft tam asi príde po nich.

25/05/14

Na východnej fronte stále nič nové - PS4 ostáva Las Numero Uno


"DirectX 12 zrýchli Xbone o 100%" - tak tento chorý blud som rýchlo zhodil zo stola. "Nové ninja úpravy PS4 SDK zrýchlia sony mašinu o 100%" - a ja znudene prikyvujem hlavou, že samozrejme. Zaujatosť SONY fanboya ? Kdeže, nie. Vysvetlenie tejto situácie však zaberie niekoľko odsekov. Je to nejakých sedem rok, čo sa Nvidia frajersky vytiahla s grafickou kartou NV GeForce 8800 GT. Mimochodom názov Geforce vybrali hráči v oficiálnej šúťaži "name dat bitch" a tí najlepší fasovali vtedajšiu špičku - RIVA TNT2 Ultra. PC kraviny to spomínam preto, lebo dodnes sa 8800 GT vyťahuje ako príklad GPU s dokonalým pomerom cena/výkon plus ten šrot utiahol hry slušne aj po troch rokoch od zakúpenia. Vlastne som tým chcel povedať, že pri dizajne skvelej konzoly musíte mať tiež kusisko šťastia. Stojí proti vám problém so správnym načasovaním, dostupnosť technologií a ich zrelosť /pájka bez olova = RROD/, cenou konzoly, teplotnou obálkou atakďalej.

Pri playstation 1 to vyšlo vo všetkých bodoch na jednotku. PS2 prišla tesne pred príchodom pixel shader revolúcie, jej grafický čip bol vlastne posledným klasickým mega rasterizérom. Stredovek. PS3 nedostala dosť dobré GPU /nič iné však vtedy Nvidia na trhu ani nemala, 8800 GT bola ešte rok ďaleko, navyše ekonomická voľba 128 bit zbernice to úbohé PS3 GPU definitívne zabilo/. A nakoniec aktuálna PS4. Konečne ďalšia šťastná trefa. Samozrejme každej z doteraz vydaných playstation konzol sa dalo "pomôcť" lepším CPU, GPU, väčšou RAM, rýchlejším HDD a podobne. Hlavne pri nastavení ceny však nemôžte priveľmi vyskakovať a za 399 euro /PS4/ nakoniec dostanete celú a veľmi dobrú mašinu na 6-8 rokov, pri PC vám to stačí iba na jedno lepšie GPU na 18-24 mesiacov.

Ak teda nemôžeme ísť cestou - "vraz tam to najlepšie, klient to milerád zatiahne", tak tým konzolám dodáme silu pomocou nejakého secret sauce. PS1 - GTE /hardverové T@L celé veky pred NV Geforce 256, PS2 - Emotion engine a jeho dve vektorové jednotky /plne programovateľné s možnosťami na úrovni DX9 pri vertex operáciach/. PS3 - CELL a 6xSPE. Vo všetkých prípadoch a hlavne pri PS2 /EE - lol/ a PS3 /CEL - trololo/ však dodnes narazíte na blba obecného skálopevne presvedčeného, že išlo iba o SONY PR kecy a ten výkon sa z toho nedal vydolovať, číra fikcia.
“There’s a set of tools called Edge that were developed on the Naughty Dog premises, actually, by a group of very, very senior games programmer, some from Naughty Dog and some from elsewhere,” Lemarchand added. “I think it’s tremendously visionary of Sony to make these tools, which are largely low-level libraries.”
PS3 EDGE "grafické" knižnice. Ak ste o tom nikdy nič nepočuli, tak ide o veľmi sofistikovaný kód bežiaci na CELL-SPE jednotkách v SPURS systéme. Masívne odľahčuje trochu bezvládne PS3 GPU - RSX. Pracovala na tom kóderska špička z americkej /Naughty Dog a spol./ a európskej sekcie /XDEV/. SPURS sú vlastne desiatky JOBs, ktoré asistujú buď centrálnemu CPU /display list pre GPU, fyzika, AI, IOP - depakovanie dát, audio - multistream, PS3 nemá dedikovanú zvukovku/ alebo GPU /EDGE - animácia, vertex ops, skinning, culling, post-fx, particles, ďalšie časti grafického API/. Iba vďaka využitiu potenciálu CELL procesora bola schopná PS3 graficky excelovať nad xcrap 360 /aj keď prevažne iba v exkluzívnych hrách, third parties toľko nadbytočného času, teda prachov takmer nikdy nemali/.
“Future SDK improvements on PS4 will focus on GPGPU rendering. This is when delta between PS4 and X1 will magnify.
A potom tu máme tú fámu o ďalšom razantnom zväčšení performance rozdielu medzi božskou PS4 a žobrákom Xbone. V aktuálnych hrách hovoríme o cirka 50-60% zisku v prospech PS4, lebo v počte ALUs /GPU, SIMD .. shaders/ je medzi PS4 a XO presne tá istá diferencia. Ak by sa XO pokúsilo o 1080p rozlíšenie v hre, ktorá na ňom beží iba v 900p, tak by sa jasne ukázal aj deficit na strane ROPs /má ich o 100% menej/ a rozdiel by narástol vysoko nad tých obligátnych 50+ percent. Insajderi však hovoria o niečom úplnom inom.

Na PS4, tak ako na PS3ke, beží stále "ten istý" SPURs. Na PS3ke sa točil na šiestich SPE jednotkách, na PS4 na šiestich jaguároch. To zrýchlenie SDK však nefúka z tohto smeru ale od paralelného ACE enginu PS4 GPU. Moderné grafické karty sprístupnili svoje masívne SIMD pole /vyše 1100 SIMD subprocesorov pri PS4 GPU/ aj pre iné ako grafické účely. Obdoba CELL-SPE filozofie. Asynchrónné výpočty na GPU /ACE/ sú ešte herne dokonale neprebádaná oblasť s potenciálom bavkania sa na dlhé roky dopredu. Ak ich však použijete správne - ste o 500% rýchlejší ako dnešna slušná intel i5ka.

Tu som sa vás teda chcel dostať už v prvom odseku tohto článku. ICE team /Naughty Dog a spol/ plus XDEV sa snažia čo najviac časti PS4 SDK napasovať na ACE engine špeciálne upraveného PS4 GPU. ACE teda môže a bude pomáhať ako CPU /GPGPU/, tak aj samotnému GPU /direct compute, obídenie ROPs, "nemožné sa stane možným"/. Oproti 95% PC GPU na trhu má PS4 GPU ACE engine s 8 jednotkami po 8 ops v každom z nich = 64 ops. PC mainstream štandard dnes je 2x2 = 4 /AMD high end špička 64 rovnako ako PS4/, Xbone iba 2x8=16.

PS4 je v tomto bode o 400% výkonnejšia ako XO. O to viac, že má 400+ SIMD jednotiek navyše, ktoré ACE engine intenzívne používa. O to viac, že sú tu špeciálne zbernice a uprava L2 kešky /volatilný tag, spláchne sa iba jedna lajna kódu, nie celá cache, značna úspora času/. O to viac, že ACE engine /nové GCN 2.0 PC GPU vrátane PS4/ je vlastne súčasť HSA AMD štandardu /heterogénne, kontextové CPU-switch-GPU spracovanie dát/ plus hUMA pamäť /CPU a GPU adresujú dáta na tej iste fyzickej adrese/, ktoré sa kanaďania snažia pretlačiť na trh aj pomocou next gen konzol. V prípade XO je HSA/hUMA silne zkriplené a limitovane použiteľné /málo GPU ALUs, eDRAM XO je prístupná iba pre GPU, strata koherencie dát s CPU a malá priepustnosť hlavnej XO RAM, len ťažko ten šmejd bude obetovať 1/3 až 1/2 polovicu priepustnosti pre postreby GPGPU/. A to je vlastne všetko. Obe konzoly dostanú časom efektívnejšie SDK, API, drivers - avšak PS4 vždy o čosi viac a výrazné fyzické rozdiely oboch konkurenčných architektúr sa nedajú nijakým zázračným spôsobom prekonať. Ukončená téma - XO bude až dokonca 8. generácie konzol po výkonnostnej stránke iba ten druhý chmuľo, za PS4.

06/04/14

PS4 - Graphics Core Next


Emil Persson alias Humus /na jeho blog chodím od samého začiatku, to jest viac ako 12 rokov/. Veľmi šikovný programátor, dnes šéf progiš v Avalanche studios /Just Cause séria/. Známe fakty, nepredstavujem ho tu po prvý krát. Posledný príspevok, ktorý u seba zavesil sa týka jeho prednášku z GDC 2014 /reč je o DX11+, next gen konzolách a korení života - optimalizácii kódu/. Výborné čítanie, napríklad ten slajd nižšie. Zopár inštrukcií pre jednoduchý shader blending. Celkom vľavo je DX9 riešenie, v strede DX10 a úplne vpravo špecifické, šité na mieru GCN /Graphics Core Next/ architektúre AMD GPU, povedzme mimo DX štandardu. Zľava doprava sa stáva aj takáto banálnosť stále týchlejšou a rýchlejšou najmä vďaka počtu inštrukcií ktoré /ne/musíte vykonať /pokles z 5 na 3/. Aj preto je teda porovnávanie dvoch rôznych GPU /CPU/ tak zbytočnou stratou času. A PS4 GPU má more špeciálnych extenzií, ktoré v PC DX API nikde nenájdete, preto vám v dobrom hovorím ignorovať to PR divadlo okolo DX12, ktoré spasí XO a čo to vlastne znamená pre konzoly. Aj kvalita moje rannej stolice je totiž v tomto prípade omnoho dôležitejšia.

DX9 - DX10 - AMD GCN

A ideme ďalej. Množstvo komplikovanej teórie, aj manuál ku jadrovému reaktoru bude určite jednoduchší, keď v tom oko hráča konečne uvidíte niečo oveľa zrozumiteľnejšie. PS4, X1 a nejaké ROPs a BW. Skrátky, ktoré patria technickým pojmom: bandwidth a raster operations pipeline/s/. Nie sme stále o nič viac múdrejši. Takže ešte raz. Polopate povedané všetci viete, že "čím viac priepustnosti /BW/ tým lepšie". Prečo ? Nuž ROPs majú na priepustnosť vašej grafickej pamäte /a zbernice/ ohromné nároky. Preto aj to more "červenej" na slajdoch. Čo však vlastne ROPs robia ? Pokúsim sa o jednoduché vysvetlenie. Moderný grafický engine existuje 3D priestore, v ktorom sa grafické primitíva tiahnu do diaľky a grafické dáta sa nachádzajú v mnohých bufferoch /G-buffer/ a módoch /rendertargets/. Tento 3D guláš a množstvo vrstiev spoja ROPs do jedného 2D frejmu vo vami zvolenom rolíšení. Je to veľmi sofistikovaný a dosť komplikovaný, plne automatický, neprogramovateľný postup - sčítate, priemerujete, delíte, zaokrúhľujete /virtuálna 3D scéna má predsa viac pixelov ako 2D frame displaya/. A ide o jednu z najstarších časti grafickej pipeline. Mimochodm prvé 3D akcelerátory ako 3Dfx Voodoo vlastne neakcelerovali to "3D" ale práve túto rasterizáciu /ide to aj softvérovo, tak sme to robili celé veky/.


Háčiky. Priepustnosť ako taká je problém, ktorý vyrieší až príchod tzv. 3D pamätí. To jest sendvič a TSV /trough silicon vias/ spojky-mini zbernice o kumulatívne ohromnej šírke pásme. Hovoríme o terabajtoch za sekundu v roku 2016+. Bohužiaľ ide teda minimálne dva roky vzdialenú budúcnosť. GPU v PS4ke by potrebovala pre plnú saturáciu celého systému aspoň 512 giga/sec, optimálne tých 1000 gigabajtov /SONY istý čas zvažovala použitie eDRAM o tomto výkone/. Ninja PC GPU ešte krát 3 až 5. Zatiaľ neriešiteľne. Čo však s ROPs, prečo to viazne tam ?

Odpoveď je už zjavná - ich počet je priamo úmerné viazaný na dostupnú BW !! A tu nikto nemá. Pri PS4ke teda na 32 ROPs treba aspoň tých 180 giga/sec. Aj keď celá pravda sa má trochu inak, ale k tomu sa hneď dostaneme. Aj preto XO "stačí" tých 16 ROPs, viac jeho BW proste neuživí. A prosím neverte blábolistom, čo pri XO "sčítavajú" jeho DDR3 a eSRAM. Ďakujem.

ROPs však majú ešte jeden problém. Ide o také malé nechcené dieťa. Obludné množstvo silikónu sa napríklad na ich úkor vráža do ALUs /GPU SIMD jednotky/ . Má to pragmatickú príčinu. ROPs vlastne maľujú vaše vypočítané pixely na obrazovku. No a tie výpočty /shaders/ vlastne odmakávajú tie ALUs. Od čas DOOM1 po KZ:SF stúpol počet kalkulácii na jeden pixel z 10 na 10 000 a bude horšie. Preto ide kremíkový budget hlavne do ALUs a čo zostane padne na ROPs, ktorých počet aj tak nesmie presiahnúť stále smiešne maličkú BW. To sú tí kostlivci v skrini dnešných GPU.

Existuje teda nejaký spôsob ako si trochu pomôcť kým príde definitívne riešenie ? Samozrejme. Zrušme ROPs, Z/stencil buffer a všetky už dnes prekonané postupy. Kompletne nová paradigma. Presne o to sa pokúsil Intel s Larrabee. Takmer to vyšlo, práve odstránenie ROPs sa ale ukázalo ako závažný performance problém. Naspäť ku rysovacím doskám. To však neznamená, že tu nie sú ďalšie pokusy.

Direct compute /DC/ - API, extra programovací režim vašej GPU. A sme pri inom dev tíme. Sucker Punch /Infamous/ a ich programátorské čoromoro. ROPs teda "niečo zoberie, prežuje a hodí to do ram". Direct compute dokáže to isté, pričom /okrem iného/ vie obísť takmer celú štandardnú grafickú pipelajnu. Oči sa vám iste pretočili. Potenciál je technicky nekonečný, ako si to urobíte /varovanie: drsné high-end "ručné" programovanie ako v ére pred 3D kartami, rozhodne nie pre každého/, také to budete mať. Výhodou PS4 GPU je aj novší GCN 2.0 dizajn a asynchrónny ACE engine. Ten si kradne voľné cykly GPU a používa ich ako bonus pre GPU, či CPU akceleráciu. PS4 hra Infamous teda podľa ich prednášky využíva GPU dvojitým spôsobom. Primárna grafická karta /low level GNM API/ a "sekundárna grafická karta" /direct compute via ACE/ pre peknú kôpku grafických fines a často je ich riešenie aj rýchlejšie ako oficiálny hardwired GPU pixel shader !! A obe tieto grafické karty pracujú paralelne. Tomuto sa hovorí skutočne efektívne využivanie /utilizácia/ hardvéru. A budúcnosť je úplne bláznivá, skutočne tu beží ešte len základný výzkum. O tomto vlastne hovoril Mark Cerny, keď povedal, že ide o future proof rezervu, ktorá to rozbalí v mainstreame tak o 2-3 roky.
----------------------------

Viete aký je vlastne základný rozdiel medzi PC a konzoláckym GPU ? Pri PC hre výrobca náklady spojené s kvalitnou optimalizáciou kódu hodí na vaše plecia. On totiž nerobí nič a vás prinúti si kupiť nový HW. Brute force prístup. Pri konzolách je to presne naopak. Celé bremeno znášajú vývojári, z HW dolujú viac a viac a viac výkonu a práve tu sme svedkami revolúcií v programovaní /moderný ACE+GPU engine je evolučne dokonalou kópiou heterogénneho CELL programovania/. Je to skostnatelé, rigidné DX PC čo brzdí vývoj. Tie ich 300 wattové GPU dlhé 32 cenťákov a panika v MS centrále keď sa ukázala konzolácka obdoba API - Mantle od AMD. Tož sa pekne usaďte a sledujte, v nasledujúcich aspoň 6 rokoch, čo skutočne dokáže špeciálne vyladené PC GPU triedy "7860" /cirka PS4 GPU/. Iba v hnilom PC protredí, by ste nikdy nezistili, ta karta by už po 18 mesiacoch a s biednym 35% využitím potenciálu skončila na smetisku dejín.

17/03/14

Playstation 4K


Ližprdel MSbetter a s ním celé digital foundry /DF/ už pred hojným časom, po sérií neuveriteľných kopancov a do oči bijúceho nadržania MS bazmekom, stratilo akúkoľvek relevenciu. A mienkotvornosť. Dnes, keď čítate tie smutno-sopľavé pamflety, už nehodnotíte ich informačnú hodnotu ale čo sa tí hajzlíci pokúsili zatajiť, umelo vylepšiť /v prospech MS, samozrejme/ alebo si to vôbec nevšimli. Niekedy čiste zámerne - popľuvať PS3, PS4, PSP, PSV a všetky tie novšie sony šmejdy.

Najnovšie faux pas  - debílek nezbadal, že The LEGO Movie Videogame na PS4 nebeží v natívnom rozlíšení 1920x1080 /rovnako ako Xbone/ ale v 1920x1280. Našťastie toho blbečka jeden odporný sony fanboy na beyond3d.com opravil. Ližprdel teda updejtol svoj bezcenný pamflet, nezabudol však obratom ruky bagetelizovať tento nepodstatný PS4 počin. Ide pritom asi o prvú známu PS4 /next gen vôbec/ hru používajúcu supersampling. Interne teda renderuje hru vo vyššom rozlíšení ako v natívnom. Prečo by to tá hra však vôbec robila ?

Supersampling je jeden z najjefektívnejších /a systémovo najnáročnejších/ spôsobov ako získať dostatočne množstvo kvalitných vzorky /samples/, proste pixely. K čomu je zas totok dobré ? Nuž sa to hodí práve ku veľmi kvalitnému antialiasingu. Jeho základným princípom je vlastne zjemňovanie zubatých hrán, generujete extra pixely pre tie plynulé prechody "do stratena". Ak hru vypočítate vo veľmi vysokom rozlíšení, napríklad 4K, tak pri zmenšení framebuffera do 1080p získate kopu pixel vzoriek a vlastne antialiasing fantastickej kvality. Niečo podobné, len v malom robí aj ta Lego hra na PS4ke. Ližprdel ale nič z toho nezaregistroval a pridám ešte jednu megaton bombu, o ktorej sa len môžem domievať, že nám to nezatajil úmyselne.

To 4K rozlíšenie som tu totiž nespomenul iba tak náhodou. Ktorá PS3 hra /áno, na PS3ke !!/ beží interne v tomto režime s downsajzom na full 1080p/30Hz s 4xMSAA a 16 x anizotrópnym filteringom v 16:9 móde plus veľmi sofistikovaný kód pre zlepšenie rozlíšenia textúr, to jest ich upscale ? Okami HD. Sám som tomu nechcel veriť ale Hexadrive, ktorý si zobral tu konverziu pôvodne PS2 hry /Clover Studio, 640x360 v 4:3 alebo tak nejak/ na starosť, práve toto všetko urobil - 3840x2160 pixelov nadčasovej grafiky japonských vodoviek.


Takto ste zároveň dostali elegantnú odpoveď na otázku, či PS4 časom aspoň teoreticky zvládne sem tam nejakú tú hru v 4K rozlíšení. Absolútne nepochybne, len musíte pustiť k vode 10 000+ shader kalkulácií na pixel a uspokojiť sa s viac štylizovanou "tisícovkou" PS3 triedy. A DF už ignorujte, stal sa z neho iba detinský a hlúpučký nástroj politického boja vojny konzol 8. generácie. Lži, polopravdy, zavádzanie - diverzná jednotka v službách MS so stereotypným, opileckým hulákaním o skvelom hernom PC, ktoré upgrejdujú každých 6 mesiacov.

12/03/14

PS4 - pokľaknite a prisahajte vernosť


Posledné /verejné/ tajomstvá konzoly Playstation 4 konečne odhalené. Na otravnú otázku, na akom kmitočte to vlastne PS4 CPU beží sa stále jasnú odpoveď nedozviete, ale povedzme, že je to tých 1.6Ghz /krát osem, heh/. Nič nové som sa z toho odkazu v úvode ja sám osobne nedozvedel. Platí, že PS4 je proste omnoho výkonnejší a značne jednoduchšie programovateľný nástupca PS3 či PS2. Technicky ide o ideové pokračovanie Psone filozofie. Transparentná a skvelá herná architektúra. 

CPU - PS4 toho času /to musím zdôrazniť/ blokuje 2 celé jaguar jadrá pre OS. To nám pre herné účely necháva 6 jadier a ACE engine /GPPGU/. Xbone to samé plus ACE asi o 1/6 výkone PS4ky. Porovnanie končiacej PS mašiny s nastupujúcou je jednoduché. PS3 - 1 x PPE plus 6 x SPE. Klasická herná logika bežala hlavne na PPE a postupne bola namáhavo implementovaná na SPE. PS3 CELL je jednoduchšie in-order CPU, SPE s veľmi primitívnom predikciou vetvenia kódu. PS4 Jaguar je výkonnejší out of order dizajn s oveľa lepším "vetvením". V hernom kóde PS4 CPU ľahko PS3 CPU porazí, ak by vám aj chýbal SIMD výkon /skvelé PS3 SPE/, ľahko si ho na PS4ke požičiate z ACE enginu /GPU/. Po CPU stránke je na tom PS4 slušne a nič lepšie aj tak nepripadalo do úvahy, žiadna možnosť iného výberu. Škoda teda o tom ďalej špekulovať.

SONY ICE team na PS4 CPU nahodil svoj dobre známy asynchrónny JOB systém z PS3 CELL CPU. Teda rozloženie kódu hry do mnohých vláken /kľudne aj 20/, ktoré si pre seba kradnú strojový časť podľa riadeného harmogramu a určenej priority /ala CELL scheduler, SPURs/. Prakticky to isté beží /voliteľne, nepovinne, paralelne/ aj na PS4 GPU v ACE engine. Je to dokonale premakané, potenciál obrovský a PS3 progiši sú tu vo veľkej výhode. Slovami vyžralého prasaťa Gabe Newella - "CELL vás nikdy ničomu užitočnému nenaučí !!" Ešte v minulom roku som zachytil, že SONY dev team zvažuje aj vyhradenie iba jedného jadra pre OS, čím chcem povedať, že je tu stále šanca pustiť časť /jedného z 2 jadier/ OS rezervácie aj pre herné účely. Ťažko však predpokladať aké nároky tu budú na OS kladené o takých 4-5 rokov a tak to teda pre istotu SONY zarezala viac ako menej.

RAM - 5 giga pre hry, 3 giga pre OS. Alokovaná ram pre OS je neuveriteľná obrovská a platí tu to isté čo pri CPU, veľká rezervácia pre "strýčka príhodu". Pri PS3 sa postupne časť tej OS ram /v úvode to bolo údajne až 120 mega, spadlo to na nejakých 50 a niečo/ vrátilo do obehu pre potreby herných vývojárov. Pri PS4ke by ušetrených 10-15% znamenal 800 až 1200 mega. Medzi nami dievčatami však 5 giga na tie dnešné sračky musí bohato stačiť. Povedzme, že rozdelenie tej "PS4 päťky" je 3 giga pre "vram" a 2 giga pre "systémovú pamäť". GTA 5 beži na PS3ke v nejakých smiešných 2 x 225 mega /XDR+GDDR3/. A PS4 je podľa všetkého aj hUMA kompatibilná. Dáta, ktoré by inak lietali medzi dvoma mem bankami /grafika, CPU/ tak môžu ležať na tej istej adrese plus tu máme PRT textúry a ďalších sto a jeden moderných "šetriacich" vychytávok. Šikovný progiš však zaserie aj 16 giga ram, však.

"70MB of additional RAM unlocked for PS3 developers" - rok 2010

GPU - tu sa nič nezmenilo, len opakovanie známeho. Malú časť výkonu si berie OS, je fuk koľko to je, nie viac ako pri XO. A opäť poznámka z úst Naughty Dog vývojára, že PS4 GPU je úmyselne trochu "premotorovaná", teda viac ALU /SIMD/, než koľko grafická časť GPU /zbernice, ROPs/ uživí iba pre svoje účely. Ide vlastne o SIMD výkon voľne k dispozicií pre potreby ACE GPGPU enginu /audio raytracing, direct compute grafika, akcelerácia fyziky a podobne/. Future proof koncept.


Ospravedlňujem sa za ten otrepaný Carmackov ftip, ale dobrému herného dizajnérovi stačí na fantastickú hru akékoľvek množstvo RAM-CPU-GPU výkonu /schválne to takto formulujem/ a naopak neschopnému nepomôže ani počítač z NASA. Kecy o číslach sú poslednou obranou impotenta. Ak aj časom SONY uvoľní ďalších 512 mega pre hry, tak prepána, toľko stačí PS3ke pre Uncharted alebo MGS5. Nintendo Gamecube si pri Resident Evil 4 vystačilo iba s cirka 24+16+3= 43 megami a Psone pri Parasite Eve 1 dokonca s troma a takto môžem pokračovať až ku 128 bajtovému Atari 2600. PS4 je po HW stránke ideálna platforma na vývoj hier, najlepšia akú kedy zem nosila. Problémom je dnes skutočne iba kvalita softvéru /hry, služby, OS/, teda loptička je na strane ľudí, nie herného stroja.

07/03/14

Rozlíšenie 1080p je mŕtve, nech žije "1080p"


Chroma sub-sampling image processing. Aj keď to málokomu z vás niečo hovorí, verte mi, že najbližšie roky pôjde o jednu z tém dňa. Je to vlastne psychovizuálny model a podobne ako pri tom psychoakustickom ide o následovné - odstrániť z informácie /v prípade našich hier: grafika, zvuk/ maximálny objem dát tak, aby ste si ničoho nevšimli. Žiaden zjavný pokles kvality. Fyzika oko, ucha a hlavne chémia mozgu majú svoje prirodzené limity, ktoré vieme šikovne využiť. Najprv však pár viet o čiernobielej televízií, chce to trochu histórie, inak nepochopíte čo sa na nás vlastne valí.

ČB TV je niečo, čo dnešné deti nezažili. Farba bola kódovaná vlastne "svetivosťou" /luminance, kód Y/. Biela, čierna a odtiene šedej. Neskôr prišla aj skutočná farebnosť /chrominance, chroma, kód C/ a s ňou maličký problém, ako zachovať spätnú kompatibilitu, to jest v jednom analógovom signály /bez enormného nárastu množstva dát/ prenášame informáciu pre čiernobielu aj farebnú telku. Múdre hlavy teda vynašli UV chroma postup a farba sa derivuje z luma kanálu. Je to more veľmi šikovnej teórie, ktorou je zbytočné vás obťažovať, podstatné je totiž niečo oveľa dôležitejšie. Náš mozog má skutočne odlišnú citlivosť na luma /jas/ a chroma /farba/ zložku. Oveľa menej na chroma !! Takže môžme stratovo komprimovať ako blázni /jpg-mpg formát je založený aj na tomto fakte/ a obraz napriek vyzerá stále rovnako "dobre".


Pôvodne prastará TV technika chroma sub-sampling /chroma kanál o výrazne nižšej presnosti/ sa dnes bežne používa v moderných hrách napríklad pre systémovo ďaleko menej náročné spracovanie postefektov /strana č.53, frostbite engine/, tie vlastne bežia v nižšom, nie natívnom rozlíšení frejmu. Dosahujú sa výborné výsledky a v DICE majú s touto technikou ešte bohaté plány ako vidíte v tej ich prezentácií /luma antialiasing atď/.

Ide totiž o to, že dnes na svete niet herného systému, ktorý by jeden herný 1080p /4K/ frame utiahol v maximálnej hĺbke, presnosti alebo rozlíšení všetkých jeho render targets a bufferov. A je ich požehnane. Prestavte si to ako matricu 1980x1080 pixelov, cez ktoru prikladáte postupne 4-8-12 transparentných folií a finálna podoba jednotlivých bodov vzniká miešaním všetkých týchto vrstiev. V podstate je dnes bežné a standardné, že 720p alebo 1080p frame obsahuje "polovicu" grafických informácií v 1/2, 1/4, 1/8 či dokonca 1/16 rozlíšení !! Ľudské oko/mozog potrebuje spekulárnu časť svetla vo veľmi vysokom detaile-frekvencii /napríklad lesklé odlesky svetla/ ale bohato mu stačí difúzna komponenta alebo aj alfa efekty o 1/2-1/4 rozlíšení - ambientná oklúzia, sekundárne odrazy svetla, dym a výbuchy, odrazy na vode. Pikantné je, že difúzna zložka podstatne prispieva ku fotoreálnosti grafiky a v najvyššej presnosti je veľmi náročná na výkon /GPU ALU, mem priepustnosť/, takže nám to skvele hraje do kariet.

Kauza KZ:SF MP a jeho pseudo 1080p. Je to rafinovaná technika falošného upscale, o ktorej som tu písal už aspoň pred rokom. V podstate tu v SP kampani máme klasicky natívny 1080p frame na priemerných 38 fps /povedzme, presne to nezisťujem/. V MP režime pochopiteľne chcete čo najviac frejmov za sekundu a teda čo najnižšiu latenciu = presnejšie mierenie a pohyb. Existuje more techník ako to "bezbolestne" a rýchlo dosiahnuť /čas sú prachy a ide o launch hru, kde ide na prvom mieste o splnenie šibeničného termínu, krása ide bokom/. Každý z vás vie, že stačí "stiahnúť efekty, detaily" alebo rozlíšenie obrazu /hoc použitie otrepaného dynamického framebuffera ala RAGE od Carmacka/ a fps okamžite poskočí. GG na to išlo trochu inak. Aj v MP majú plný 1080p frame ale polovicu pixelov získavajú dosť náročnou rekonštrukciou dát posledných frejmov /táto technika a všetky jej variácie budú masovo používaná v mnohých, ďalších hrách/. Veľmi jednoducho popísaný postup máte v odkaze na začiatku kapitolu, mňa však okamžite napadlo niečo iné.

To, že si tento grafický manéver nikto v praxi nevšimol /ani sony hater a MS Ližprdel z eg.net/, svedčí o vysokej kvalite použitej metodiky. Na inú vec však upriamim vašu pozornosť. SONY je údajne tesne pred odhalením svojej vlastnej VR prilby. Logicky potrebujete pri renderovaní obrazu pre dve oči aj dvakrát toľko výpočtov a teda zákonite nemôžte dosiahnuť tú istú kvalitu grafiky ako v "nie-stereo móde". Dopredu som však upozorňoval na to, že existujú programovacie techniky /a vyvíjajú sa aj dalšie/ ako si s tým elegantne poradiť a KZ:SF MP je toho klasický príklad. Budem sa teda tváriť veľmi "prekvapene", ak nepôjde o prvú prezentovanú VR "1080p" hru od SONY "bez degradácie" grafiky, v slušnom rozlíšení a predsa na akceptovateľnom framerejte.