5. 2. 2012

Mód X

V lete roku 1991 Michael Abrash v časopise Dr. Dobb's Journal zverejnil časť /kapitoly 47-49/ svojej knihy Abrash's Graphics Programming Black Book. Prezentoval tam nový spôsob adresovania grafickej pamäte výsledkom, ktorého bolo nielen enormné zrýchlenie behu týchto operácii, ale aj rozšírenie grafických možnosti. Mode X. Abrash je objektívne stále jedným z najlepších žijúcich kóderov všetkých čias, pochopiteľne bol aj pri vývoja DOOMa a ďalších revolučných hier. Dnes bohužiaľ pracuje pre čurákov z Valve, kde sa už roky žiadne hry nerobia.



FF7 pochovalo nintendo, DOOM 1 zas amigu

Pointou módu X /inak plne dokumentovanou, ale zámerne defaultne nevyužitou/ bolo umožnenie tzv. planárneho usporiadanie videopamäte, namiesto výrazne /pre hry !!/ neefektívnejšieho chunky - chained módu /reťazenie 64 kilových baniek 256 kilovej vram/. Defaultná VGA 13H /hexadecimálna/ grafika v 320 x200 pixelov x 256 farieb znela pekne iba na papieri, v praxi ste míňali zbytočne kvantá výkonu. Efektívnejšie využitie pamäte v móde X prinieslo možnosť použitia vyššieho rozlíšenia - až 360x480 pixelov, double a triple buffering /flicker free animácia/ predtým nemožný v 13H režime, plynulý skroling a splitting obrazu, 4 susediace pixely mohli byť zmenené alteráciou jedného riadiaceho bajtu - čo nesmierne urýchlilo aj 3D hry /kreslenie čiar, vypĺňanie plôch/. PC zrazu odskočilo konkurencii /amiga, atari/ o svetelné roky. Známa chunky to planar /c2p/ rutina z amigáckých dúmoviek vychádza z rovnakej filozofie ako Abrashov mód X. Ak si teda teraz pozriete napríklad tieto dve staré PC demá možno si poviete - pffff amiga to zmákne ľavou zadnou, ale práve tieto PC demátko bežali úplne plynulo na slabučkých 286/386SX vďaka novému módu X, a nepotrebovali tak ako pred rokom 1991 oveľa silnejšie 486ky !!

Amiga mala v tých rokoch na trhu suverénne najlepší custom hárdvér pracujúci pri správnom manažovaní veľmi efektívne. Amiga 500 s Motorolou 68000 na 7Mhz z roku 1985 dlho nevedela nájsť konkurenciu ani na výrazne drahšom PC hárdvére /i486 - 1989/. Už len jej HW blitter /block image transfers - presuny časti grafickej pamäte bez asistencie CPU/ zosmiešňoval výkonnejšie 486ky, kým neprišiel Abrash a nedal to "do poriadku". Aj po všetkých tých rokoch platí, že samotný hárdvér je ničim, musíte prísť na spôsob ako ho využiť skutočne efektívne. Didaktickým príklad je súčasný prechod od forward ku deferred renderingu. Neuveriteľne zvýšenie počtu svetiel na scéne a nepriamo aj geometrie a teda globálnej kvality grafiky hry vôbec. Asi málokto tuší, aké neskutočne rezervy má dnešné DX 11 rozhranie /10 rôznych RT - render targets, sdieľanie dát, dnes je možné kvantum efektov vyriešiť požičaním si danej informácie z iného RT/. Pribudnú compute shaders /de fakto softvérový shading/ alebo plne customizovateľná softvérová rasterizácia /!!/ - proste ako za starých čias v 1989. PC blbeček vidí 500 dolárové, 300 wattové GPU, ja vidím more možností, ktoré skutočné talenty dokážu využiť a nový zlatý vek programovania.