15. 5. 2012

Rrr-occk ssso-lid 60 fps

Koktavé herné PC. "I'm getting micro stuttering in my games, but I have only 1 video card?", "Understanding micro stuttering, bane of high-end PC gamers" , "Micro lag and buzzing sound in game", "Game Lag After Installing Trend Micro Titanium". Môžu mať PC deti plnú hubu úžasného PC, ktoré rozbehá tých pár portov z konzol na 518 fps v 2560 pixeloch, aj tak sa väčšina problému mikrolagu nevyhne /priemerný framerate je 56, minimálny 32 ale hra aj tak pocitovo nepríjemne "drhne"/. Half Life 2 takto nasral milióny. Moja osobná skúsenosť aj s inými hrami je tak smutná, že som rád, že to vôbec beží a nejakú mikrocukatúru už vôbec neriešim, pre istotu ani neinštalujem novšie ovládače pre grafiku, lebo mám otrasné skúsenosti s "optimalizovanými" drivers by Nvidia. Mimochodom moja aktuálna NV GT 240 začala ukazovať grafické artefakty pri nenáročnej práci v 2D desktope a pravdepodobne signalizuje kolaps čipu /tretie GPU od NVidie za posledných 5 rokov/.


Problematika mikrolagu je tak nekonečne obšírna, že je de fakto neriešiteľná, lebo ju môže spôsobovat akákoľvek hárdverová a softvérová súčasť vášho PC, eventuálne ich kombinácia. Epic sa napríklad snaží veľmi agresívne tlačiť do svetla lámp svoj odporný engine, pritom mu na konzolách, či PC venuje iba pramálo pozornosti a to aj v pri základných banalitách. Nimi odporúčané defaultné nastavenia / ini-cfg settings/ sú jeden veľký bordeľ. Epic sa tiež ani nenamáha o nejaký stabilnejší fix pri probléme "bInitializeShadersOnDemand", ktorý robí veľké problémy na Nvidia grafikách a to doslova bez ohľadu na nastavenie /true-false/, buď kód kolabuje, alebo framerate mikrolaguje /zadrháva-stuttering/. Gólom roka je aj to, že Unreal engine niekedy sám urobí násilný override vami manuálne nastavených hodnôt na tie "svoje" ak teda nemáte ini/cfg súbor chránený pred tou sviňou v write-only móde. Blbečkovia z Epicu.

Zvukové karta v PC mašine, mimo už zvukovky integrovanej na matičnej doske, vyzerá ako problém už na prvý pohľad a nebol by to bill aby do toho ešte viac nenasral teplej hnačky. Win7 systém umožňuje zlepšiť latenciu /performance/ vašej zvukovky v exclusive móde, daňou za to je aj to, že v daný moment ju môže použiť iba jeden program, a navyše to niekedy blokuje záznam audia. Nie je žiadnou vzácnosťou, že v chaose ovládačov a rôznych konfigurácii práve tento rýchly exkluzívny mód spôsobuje zvukové a grafické artefakty /lag, stuttering/.

Sieťovky. Ďalšia bomba. Ruky sa vám trasú pri pohľade na puberťákom fatal1ty odporúčanú sieťovú kartou s detailne programovateľnou flow kontrolou, manažmentom početných "prerušení". Natlačíte tam výrobcom doporučené hodnoty pre vašu prdlú PC MP gamesu. A výsledkom je opäť mikrolag pri konflikte s iným zariadením, typicky pri streamingu dát, proste akákoľvek IO aktivita. Mňa žena s NTB na wifine /ja samozrejme na drôte/ vždy spoľahlivo zruší aj keď si iba ťuká do facebooku. Skvelý router a NIC radič.

Harddisky IDE/SATA/PATA. AHCI /Advanced Host Controller Interface/ od Intelu. Advanced - pokročilé množstvo problémov. Človek by povedal, že po toľkých rokov symbiotického súžitia mŕtveho PC s HDD technológiou sa to až tak kusať nebude. Ale kdeže, internet je opäť plný problémov. Hry a programy síce bežia, ale práve vo vašom prípade a konfigurácii značne klopýtavo. Často sa rehotám keď na Epic a Bethesda fórach čítam o najmenej bolestnom fixe /hlavne na vynervovanej psychickej stránke hráča/ - upgrejd PC na SDD a odstránenie lagu/stutteringu obyčajnou hrubou silou.

Timothy Lottes z Nvidie /autor FXAA algoritmu - paradoxne práve v niektorých hrách od Bugthesdy sám o sebe spôsobuje mikrolag/ už v zúfalstve navrhol, teda aspoň v teoretickej rovine, čiastočne riešenie pomocou postupu pracovne nazvaného time smoothing. Hodí sa hlavne V-syncON hry /pri vypnutej vertikálnej synchronizácii je aj tak obraz rozbitý tearingom, ak aj to nie je čiastočne ošetrené softvérovým VsyncON postupom/. Je to viacmenej opäť primitívny brute force fix spočívajúcu na práci s viacerými frejmami naraz a korigovaní, časovej harmonizácii vykresľovania frejmov riadenej CPU, ak to GPU pokašle /nestihne pripraviť nový frame pri novom Vsync cykle/.

Článok bol zatiaľ venovaný iba blbému hernému PC. Nastal však čas aplikovať nudnú teóriu do konzoláckych hier. Hore uvedený postup sa dá vlastne použiť na akékoľvek dáta bežiace v reálnom čase a majúce problém stihnúť "urobiť všetko načas". Napríklad fyziku pri multiplayerových hrách, kde aktualizácia fyzikálnych výpočtov na obrazovke má často značne ťažkosti s udržaním kroku pri neuprosne vykresľovaných frejmoch. V hre BF 2142, alebo GT5 v MP potom zažívate more bizarných udalostí, alebo nižšiu presnosť fyziky oproti singel player móde. Prechádzajúci odkaz, prekvapenie, sa v skutočnosti týkal špeciálnych a podľa autora /šéf progiš sieťového kódu multiplayer časti PS3 hry God of WaR: Ascension/ aj dosť revolučných kóderských postupov. A ako poznáme spoluprácu SONY dev tímov, je na rane, že sa objavia aj v iných MP hrách.