20/09/21

33Mhz >> 333Mhz

Ako už dobre viete v roku 1994 som s veľkou závisťou, ja stále na 8 bitovom Sinclair ZXS 48 gumáku, zahral DOOM 1 shareware demo u kamoša na jeho i386DX-40, aj keď beh gamesy mal ďaleko ku dokonalosti. Veľkosť okna alebo úroveň detailov musela ísť riadne dole, ak ste tam chceli čistiť peklo brokovnicou aspoň na priemerných 20 fps. Prišlo mi teda ako dosť trúfale, aby to PlayStation 1 /štart 1994/ s 32 bitovým MIPS CPU na 33Mhz zvládalo oveľa lepšie. DOOM však na PS1 bežal v celom okne ako z praku aj so zopár grafickými vylepšeniami ako farebné ambientné nasvietenie levelov. Na tej i386/DX40 by vás tiež určite nenapadlo spustiť veľa pokročilejší pravý 3D engine hry Quake. PS1 zvládla aj to a jej Quake 2 na natívnom "playstation" kóde od Hammerhead ide v rozlíšení 512x240 pixel s cieľovými 30 fps. A hra rutinérsky a plynulo beží aj v režime quad split-screen pre lokálny deathmatch 4 hráčov. Ekvivalentne minimálne 333Mhz i486DX.

softvérový rendering vľavo potrebuje aspoň Pentium - vpravo aspoň 3Dfx Voodoo 1

Aby ste lepšie ocenili, čo sa tu vlastne deje, tak to orámcujem behom Quake 1 na špičkových 32 bitových intel 486/586 procákoch /a jeho klonoch/. Všetky PC počítače nižšie idú v defaulte 320x200 pixel a používajú štandardnú "2D" grafiku S3 Trio64V/2MB na PCI s kopou systémovej RAM /48 až 128 mega EDO RAM na 60ns/. Merá sa dvojica vetiev. Originálny kód ala Carmack /stock/, ktorý ráta primárne s FPU výkonom Pentium triedy a alternatívna cesta "486/586quake", ktorá sa snaží ručne dodatočne ladeným asemblerom vytlačiť z mašín nejaký ten frame za sekundu navyše.

Quake 1 /rozlíšenie 320x200 px, 256 farieb, priemerný počet snímkov za sekundu/:

            CPU         stock fps    486quake r6
AMD 5x86/133            16.4             18.4
Intel 486DX4/100             9.6     10.9
Cyrix 486DX2/66             6.3     7.1

CPU stock fps    
586quake r6
Pentium 133 (P54C)     35.6
41.0
Cyrix 6x86MX, 133Mhz   
26.3
29.7
AMD K5, 100MHz 25.8
29.0

















Ako vidíte, tak aj extrémne vysoko taktované i486ky sú v hre Quake bez šance na dosiahnutie herne prijateľného snímkovania a Pentium, pre ktoré je hra určená dosahuje o 100% lepší framerate per megahertz oproti špičkovej AMD "5x86" s veľkou L1 keškou. Pentium klony sú na tom oproti intelu poslabšie. Všimnite si aj ten Cyrix 486DX2/66, ktorý ak by bežal na rýchlosti 33mhz ako PS1, tak by teoreticky valil Quake v 320x240 rozlíšenie asi na 3 fps.

PlayStation 1 je teda v tomto prípade minimálne desať krát vykonnejšia a navyše to zvláda vo vyššom rozlíšení a v širšej palete ferieb. A je tomu tak z dvoch hlavných dôvodov. PS1 akceleruje proces rasterizácie na svojom GPU, čo PC grafika S3 Trio64V nevie a naučili sa to napríklad až s príchodom 3Dfx Voodoo 1 niekedy v 1997 a navyše dokáže akcelerovať aj proces geometrických transformácií /Geometry Transformation Engine - GTE/, čo PC dostalo veľmi neskoro v 1999 v podobe Nvidia Geforce 256. HW dizajn PS1 teda doslova o zopár "GPU generácií" predbiehal vývoj na strane PC, tam si to zatiaľ všetko muselo odmakať CPU, čo vyžadovalo veľmi vysoké pracovné frekvencie a výkonné FPU alebo SIMD/SSE inštrukčné sady.

Ilustračné /YT video/. Veľmi dobré Pentium 200 v softvérovom "CPU" režime ide Quake 1 v 320x200 rozlíšení v benchmark teste na priemerných 46.5fps, ale v 640x480 je to už nedostatočných 17.3fps. Ešte lepšie  Pentium 266 už šprintuje v 320x240 na krásných 63.9fps ale stále nedosahuje stabilných 30 fps v 640x480, "iba" 26.9 fps. Potrebujete aspoň Pentium 300 na 640x480/30fps. Túto hodnotu však "hravo" dosiahnete na Pentium 100mhz s Voodoo 1 /akceleruje rasterizáciu/ a ak by tá Voodoo 1 vedela kvalitne urýchliť aj geometriu, tak by vám pravdepodobne pre CPU stačilo aj tých 33Mhz ala PS1.

Všetko vyššie uvedené teda naznačuje, že nemať SONY inžiniersku predvídavosť a keby to dali na "klasiku" s priemerne 3D blbým GPU, tak by muselo CPU PS1 bežať na nejakých 200Mhz, čo ale demonštroval až SEGA Dreamcast v 1998. Podobné HW skratky ako PS1 predviedla aj PS2 s vektorovými VU jednotkami /technicky HW akcelerované "compute" od grafiky po fyziky/, PS3 s SPE jednotkami /VU na turbe/, PS4 s ACE jednotkami /asynchrónne compute/ a PS5, kde toho o úpravách CPU a GPU zatiaľ veľa nevieme, takže aspoň cena útechy na úrovni SSD IOP a jeho na zákazku urobeného radiča s HW dekompresorom. Naspäť ku PS1. Jeho future-proof návrh architektúry bol natoľko kvalitný, že s ľahkosťou a pri smiešne nízkej cene držal krok s herným PC úrovne i486 až Pentium s 3Dfx grafikami a to by vtedy u nás stále cenovo nedostupná "rovnako rýchla" i486SX-33 s S3 "2D" grafikou nedokázala ani vo sne.

8 comments:

  1. Yep, už to tak vypadá, že PS1 předháněla všechny ty 486-tky právě díky svému GPU... PC s nějakými S3 TRIO apod. asi nemělo sebemenší šanci...

    ReplyDelete
    Replies
    1. ... v sekunde ako sa do akcia zapoji transformacia velkeho poctu polygonov a potrebujes vela fillrate ide i486 v cistom softr. rezime do hajzlu .. iny priklad .. vykon voodoo 1 staci na 640x480p/50fps v Quake 1 ale .. ale .. quake dava na jeden polyn "vzdy" dvojicu textur - zakladnu mapu a light mapu a to deti nutnostou multitexturingu vykon Voodoo 1 presne na polovicu .. takze 640x480p/25fps ..

      ... sony inzinieri neboli idioti a videli ako sa to robi na velkych arcade 3D kabinetoch s DSP alebo geometry procakmi pre spracovanie geometrie mimo hlavne CPU .. takze PS1 to fasovalo rovnako - rasterizacia isla z CPU na GPU, geometria isla z CPU na GPU a zrazu staci aj 33Mhz na CPU .. pri PC Quake s i486/33Mhz v 512x240p neda ani 2 fps .. garantujem.

      Delete
    2. .. /a to deli nutnostnou .. /

      Delete
  2. Jsem si říkal čím to že "slabá" PS1 zvládala vklidu Quake. Po tomhle vysvětlování si jsem jistý že by PS1 v pohodě zvládla první Half-Life. Ten běžel na modifikovaném engine prvního Quake.

    ReplyDelete
    Replies
    1. ... PS1 nema FPU ale ma geometricky procesor pracujuci s integer presnostou /menej presne ako fp ale velmi rychlo/ .. PS1 ma teda velmi dobry fillrate na GPU a skutocne velmi rychle spracovanie geometrie a ak sa na to nasije dobry ASM kod, tak su vysledky velmi pekne.



      Atari Falcon Quake "HL" engine .. na inspiraciu .. Atari falcon ma 32 bit CPU na 16 Mhz teda polovica PS1 alebo i486SX33 co samozrejme nestaci na 3D engine triedy Quake .. Doug Little ako Atari specialista teda pouzil 32 Mhz audio DSP Falcona ako primitivny geometricky procesor .. skoda, ze to DSP je spojene so systemom velmi pomalou a uzkou zbernicou a ma smrtelne male kesky. To DSP je urcene na audio, nie na masivne gfx data. PS1 tieto drakonicke limity nema a je primarne dizajnovane ako velmi sikovna 3D masina.

      Delete

  3. Quake na 486dx33 .. podla predpokladu 3.5 fps

    Quake na 486dx160 .. podla predpokladu bezne viditelne pod 15 fps.

    ... potrebovali by ste 333Mhz 486ku na PS1 performance /vratane quad split screenu/.

    ReplyDelete
    Replies
    1. 486... fuuuuuuuuj!!!!

      Delete


    2. Quake 2 na P90ke .. v soft. mode a 320x200 .. jasne pomalsie ako na PS1 !!

      .. Pentium 100ka je na Qvaka asi ako i386DX40 na DOOMa .. eh.

      Delete

**** pre vloženie hypertextového odkazu do komentára použi CSS kód: hyperlink ****