Pracovní stanice, IBM PC, Silicon Graphics a začátky 3D (díl 4.) – válka grafických API a konec UNIXových stanic

Druhá polovina 90. let byla naprosto zásadní dobou pro rozšíření 3D akcelerátorů téměř do všech segmentů výpočetní techniky od výkonných pracovních stanic až po obyčejné PC notebooky. Když jsem posledně skončil u konce roku 1996, trh s 3D akcelerátory byl v tu dobu podstatně rozmanitější než dnes. Všechno se to ovšem mělo brzy změnit.

sgi-onyx2-multi-seat-presskit-cd

Abych letmo zrekapituloval situaci – na přelomu let 1996 a 1997 už v PC existovaly 3D akcelerátory jak pro hry, tak pro profesionální využití. Levné 3D akcelerátory okupovala S3 s Virge DX/GX, případně ATI Rage II – oboje byly vylepšené druhé generace čipů, které se objevily jen půl roku předtím. Dále se objevily akcelerátory s čipy od Rendition, PowerVR, ale také 3Dlabs (Permedia).

Hry pro takové akcelerátory používaly mnohdy nové rozhraní Direct3D, ale někdy musely být kvůli omezením karet primitivnější, než kdyby vykreslovaly jen přes procesor. Kdo chtěl skutečně maximum požitku z 3D akcelerovaných her, ten musel jít cestou 3Dfx Voodoo Graphics, pro který postupně vycházelo více a více her, které s jiným akcelerátorem neběžely.

V profesionálním segmentu se mimořádně dařilo společnosti 3Dlabs, ale nebyla samotná. Absolutní hi-end na půl cesty k SGI, které stále v grafice dominovalo, představovaly stanice Intergraph. Poměrně schopné akcelerátory vychází také na čipsetech od Mitsubshi (3DPro/2mp založené na Evans&Sutherland REALimage 1000), které sice našinec asi moc znát nebude, ale kromě CADů velmi schopně zvládaly také rychlé vykreslování textur (k čemuž měly rovnou 16 MB texturové paměti) a mohly sloužit i k řízení různých vojenských simulátorů.

SGI není jediný výrobce UNIXových stanic s nabídkou 3D akcelerace. Druhý v řadě je zcela jistě Sun, jehož vlastní grafiky Creator3D a Elite3D nejsou špatné, ale pokud vás zajímá hlavně texturový výkon pro hry a simulace, asi byste si ani jednu z karet nevybrali (na obranu však musím říct, že geometrický výkon byl u karet od Sunu srovnatelný s tím, co nabízelo SGI).

SGI a boj o „low-end“

Kdo chtěl to nejlepší, ten si koupil SGI Indigo2 s grafickou kartou Maximum IMPACT a dostal se na úroveň, kterou ostatní ani nenabízeli. Na druhou stranu Maximum IMPACT byla v podstatě zdvojená grafika High IMPACT (podobně jako SLI u Voodoo2) a byla pekelně drahá. Základ s podporou textur v podobě High IMPACT sice byl pořád velmi rychlý, a hlavně s bezproblémovou akcelerací prakticky celého OpenGL, ale profesionální karty do PC na něj výkonem pomalu dotahovaly – ty nejlepší už nebyly příliš pozadu.

Taková situace byla nebezpečná. Zvláště pak, když byly levnější. Bylo jasné, že v nabídce musí být také levný stroj (na poměry UNIXu), který bude vybaven 3D akcelerátorem s podporou textur. SGI nečekalo, až ho konkurence dožene, a tak už koncem roku 1996 přichází na trh stanice SGI O2.

sgi-o2-promo

Nová dostupná stanice SGI O2 (zdroj: SGI press kit CD)

SGI O2 přichází jako náhrada původního Indy a snaží se být ve všem lepší. Pizza-box provedení již evidentně nebylo v kurzu a designéři krabic pro počítače SGI se v druhé polovině 90. let už definitivně utrhly ze řetězu. O2 je neuvěřitelně malý počítač a kvůli jeho zaoblenosti si už na něj nepoložíte ani monitor, ani cokoli jiného. Ač je výrazně menší než průměrné PC snad ve všech rozměrech, není to úplně uzavřený systém.

Do počítače s procesorem MIPS R5000 se vejdou dva disky (u R10000 jen jeden), jedna standardní karta typu PCI/PCI-X (32/64bit) a jeden speciální modul, který může nabídnout buď jen zvukovku, nebo také video vstupy/výstupy a konektor pro webkameru O2 cam. Vše je velmi snadno servisovatelné. Výměna celé desky je otázka chvíle a nevyžaduje ani šroubovák. Stejně tak manipulace s disky a přidávání operační paměti.

sgi-o2-mainboard

Malá základní deska SGI O2 obsahuje všechno potřebné. Pod světlým chladičem je paměťový řadič s 3D akcelerátorem, vlevo od něj je Display Engine, který řeší vykreslování na monitor. Geometrii počítá hlavní procesor v rohu desky.

Zatímco jiní výrobci profesionálních stanic dělají své grafické akcelerátory komplikovanější a komplikovanější – klidně na několika velkých kartách s mnoha čipy –, SGI volí opačnou cestu. O2 je až neuvěřitelně jednoduchá. Grafika s 3D akcelerací je totiž integrovaná přímo do srdce maličké základní desky – paměťového řadiče.

Architektura počítače je odlišná od počítačů tehdejší doby. Hlavní čip uprostřed základní desky je totiž výkonný switch, který má z jedné strany připojenu osmici paměťových slotů pomocí 256bit sběrnice (s přenosovou rychlostí tehdy úžasných 2,1 GB/s) a z druhé strany všechna zařízení, která s pamětí potřebují pracovat (technicky jde o crossbar switch s několika univerzálními porty, kdy část je zapojena směrem k RAM a část směrem k ostatním zařízením). 3D akcelerátor je integrovaný v čipu tohoto speciálního paměťového řadiče, kde má nejrychlejší přístup do paměti. Takže ano, jde o integrovanou grafiku se sdílenou pamětí.

Ale nenechte se zmást, tahle integrovaná grafika je ve skutečnosti velmi rychlá. Grafické jádro pracuje na 66 MHz a má jednu pixel pipeline. Bez textur zvládá kreslit pixely rychlostí 64,2 Mpix/s, takže každý pixel trvá jediný takt. V případě textur se výkon snižuje až v případě, že jsou příliš detailní. V závislosti na rozlišení textur se pixely kreslí rychlostí 32-59 Mpix/s. V praxi je výkon někde na úrovni 3Dfx Voodoo Graphics, která je i na poměry profi karet považována za velmi rychlou. Rozdíl je ovšem v tom, že SGI O2 má stejný výkon při kreslení v true color (16 miliónech barev) a s přesnějším 32bit Z-Bufferem. Navíc má kompletní implementaci OpenGL s podporou všech efektů poloprůhledností a schopností akcelerovat 3D ve vysokých rozlišeních.

Paměťový řadič je navržený tak, aby se grafika a procesor navzájem neomezovaly, i když oba přistupují do paměti. UMA architektura (Unified Memory Architecture) přináší i další výhody. Karta s video vstupy může být daleko primitivnější než na PC. Stačí jen pár převodníků a dekodérů a snímky se mohou rovnou ukládat do paměti bez nutnosti implementovat nějaké buffery („zero copy“). Takový obraz z paměti pak můžete rovnou nechat vykreslit real-time jako texturu na trojrozměrném modelu, opět bez nutnosti kopírování v paměti.

Grafické jádro dokáže při vykreslování využít až asi 700 MB paměti pro textury. SGI O2 se díky tomu stala oblíbeným počítačem k medicínským přístrojům. Ještě dnes se dají najít nějací veteráni u starých magnetických rezonancí.

Cena základní O2 byla v době uvedení okolo $6.000. Solidní sestava vyšla asi na $10.000, což byla na UNIXové poměry docela levná sranda, která konkurovala i PC stanicím s profesionálními 3D akcelerátory. O2 byla také nadstandardně přátelská pro uživatele z PC světa. Klávesnice a myš jsou standardní PS/2, monitor se připojuje na úplně obyčejný VGA výstup a v počítači je dokonce i integrovaná optická mechanika, takže instalace operačního systému a programů z CD není nic složitého. Standardní je i dvojice sériových portů. Z rychlých portů potěší integrovaný 100Mbit Fast Ethernet a rozhraní SCSI. Po vložení speciálního modulu je možné grafiku rozšířit o digitální výstup, který umí pracovat se speciálním 17“ širokoúhlým monitorem od SGI s rozlišením 1600×1024.

sgi-o2-with-1600sw

Dva roky zpět jsme na Bytefestu ukazovali jednu z našich SGI O2 dohromady z ikonickým monitorem SGI 1600SW. Širokoúhlý 17″ LCD panel z roku 1997 má rozlišení 1600×1024 a 8bit přenost pro každý barvový kanál (celá galerie).

Integrované grafické řešení v SGI O2 má nejspíš kořeny v práci na herní konzoli Nintendo 64. Na jejím hardwarovém návrhu totiž z velké části pracovalo právě SGI. Když se podíváte na architekturu této konzole, která ve své době bezpochyby měla nejpokročilejší grafiku, zjistíte, že se od SGI O2 příliš neliší – taktéž má jeden hlavní čip kombinující paměťový řadič s 3D akcelerátorem, který sídlí mezi pamětí a hlavním procesorem.

nintendo-ultra-64-dev-kit-for-sgi-indy

Vývojová karta od Nintenda pro SGI Indy obsahuje kompletní hardware konzole Nintendo 64. Čip s chladičem kombinuje paměťový řadič s grafikou, procesor je hned pod ním (více fotek).

Válka grafických API

Rozhraní pro 3D akceleraci grafiky byla v druhé polovině devadesátých let předmětem plamenných diskuzí. Původně se tým kolem Windows NT (3.5) rozhodl podpořit OpenGL, aby udělal z tohoto systému plnohodnotnou alternativu k UNIXům. Softwarová implementace OpenGL od Microsoftu byla přijata pozitivně, neboť byla na poměry softwarových implementací i poměrně rychlá (mnohem rychlejší než Mesa, která se později objevila v Linuxu). Ke spuštění programu využívajícího OpenGL najednou stačilo téměř libovolné PC s Windows NT.

Dalšího vylepšení se dočkala softwarová implementace ve Windows NT 4.0, kde přibyla podpora funkcí OpenGL 1.1. Jenže tím prakticky podpora OpenGL ze strany Microsoftu skončila. Microsoft totiž přišel s názorem, že takové rozhraní je příliš komplexní a není vhodné pro primitivní herní 3D akcelerátory. Odpovědí mělo být Direct3D.

Byť se Microsoft zprvu tvářil, že obě rozhraní podporuje stejně a nijak si nekonkurují, situace se rychle začala měnit. Již jsem zmiňoval, že původní Direct3D vzniklo nákupem rozhraní Reality Lab. Microsoft koupil společnost, která ho vyvíjela, v únoru 1996 a o pár měsíců později už bylo součástí DirectX. Rozhraní bylo navrženo tak, že se veškerá geometrie počítala procesorem (ostatně to API vzniklo jako herní engine se softwarovým vykreslováním) a grafická karta mohla akcelerovat pouze rasterizaci. Programátoři her museli pracovat s něčím, čemu se říkalo execute buffer, přes který kartě předávali příkazy. Práce s ním byla neuvěřitelně krkolomná a podstatně složitější než programování pro OpenGL.

Rozbuškou pro konflikt se stal příspěvek Johna Carmacka z prosince 1996 v jeho souboru .plan (strana 28). To byl obyčejný textový soubor, kam si psal nějaké novinky a postřehy kolem vývoje Quake, a kdokoli si jej mohl přečíst online. Něco jako blog bez grafiky.

Carmack toho roku vytvořil akcelerovanou verzi hry pro OpenGL a následně se pustil také do implementace hry v Direct3D, aby získal co nejlepší srovnání. Toho prosince však celou snahu zařízl s vysvětlením, že Direct3D je sračka, je utrpení jej používat a neexistuje podle něj situace, kde by mělo smysl. Dodal i ukázky z obou API vysvětlující jeho závěry. Myšlenka byla taková, že by měl Microsoft celé Direct3D rovnou utratit a raději se soustředit na OpenGL. Následně se k němu přidala i část herní komunity ve formě otevřeného dopisu, pod který se podepsalo asi padesát herních vývojářů.

Tím samozřejmě začaly silné diskusní přestřelky během roku 1997, ale Microsoft se evidentně nechystal OpenGL dále aktivně podporovat. Místo toho PR oddělení pracovalo na plné obrátky, aby útoky odvrátilo. Další změnou byl přesun vývoje Direct3D do Redmondu (centra Microsoftu). Původní tým už Direct3D 4.0 nikdy nedodělal a po verzi 3.0 vychází rovnou 5.0 v režii Redmondu. Tato nová verze si přebrala některé prvky OpenGL, aby se s ní lépe pracovalo.

Svého nakonec dosáhl i Carmack. Řekl, že bude i nadále ve svých hrách používat OpenGL a je pouze na výrobcích grafických karet, zda toto rozhraní budou podporovat. Pokud ne, jeho hry na těchto kartách logicky nebude možné akcelerovat. Šlo o naprosto zásadní krok, který v 90. letech asi ze všeho nejvíce pomohl rozšíření OpenGL mezi běžné spotřebitele. První díly Quake ukazovaly špičku grafických možností, byly předmětem velkých multiplayerových turnajů a sloužily i jako benchmark. Málokterý výrobce grafických čipů si dovolil od roku 1998 nemyslet u svých produktů také na OpenGL. U některých implementací však bylo viditelné, že prioritou je akcelerovat především to, co používá samotná hra – ostatní funkce měly podstatně menší priority.

quake-glquake-comparison

Tak se tehdy prezentoval rozdíl mezi standardním Quake I a OpenGL implementací GLQuake běžící na 3Dfx Voodoo.

SGI pochopilo, že OpenGL leží především na jeho bedrech. Zajímavým krokem byly některé produkty pro Windows, které pod SGI vznikly. Mimo jiné šlo také o novou softwarovou implementaci OpenGL, která uměla pod Windows využít nových funkcí procesorů Pentium MMX přímo navržených pro práci s grafikou a zvukem (ostatně zkratka znamená MultiMedia eXtension). S MMX se do procesoru dostalo několik nových 64bitových registrů, do kterých je možné vložit osm 8bitových čísel, případně čtyři 16bitová a následně nad nimi souhrnně provést nějakou (celočíselnou) operaci vyvoláním vhodné instrukce (SIMD = Single Instruction Multiple Data).

Tehdy jsem o tomto softwarovém vykreslovači (ve formě celé knihovny opengl32.dll) vůbec nevěděl. Vytáhl jsem tedy notebook se 133MHz procesorem Pentium MMX, abych otestoval obě implementace proti sobě. Při vykreslování netexturovaných polygonů je SGI rychlejší 4,4x (35,8 vs. 8,1 Mpix/s), s přidanou poloprůhledností dokonce 6x (6,0 vs. 1,0 Mpix). Při kreslení nefiltrovaných textur bylo ještě stále možné dosáhnout 2,5-2,9x zrychlení (při nízkém rozlišení textury 4,6 vs. 1,8 Mpix). S takovým výkonem jste se v některých situacích dostaly klidně na 80 % výkonu S3 Virge (bez filtrace a bez poloprůhlednosti).

Někdy snad začátkem roku dochází k velkému zvratu – Microsoft a SGI spojují své snahy při práci na projektu Fahrenheit, což má být něco jako integrace OpenGL do DirectX, v novém Windows NT 5.0 (před vydáním nakonec přejmenovaném na Windows 2000). Hotovo, dobojováno? Ani ne.

Projekt samozřejmě nikam nesměřoval a koncem roku 1999 vyšuměl do ztracena. SGI se sice chvíli dělalo, že to ještě není konec projektu, ale to už moc nikoho nezajímalo. Jediné, čeho se tím dosáhlo, byl odchod některých lidí, kteří v SGI na rozšiřování OpenGL pracovali. Ti odešli (už během roku 1998) převážně do NVIDIE (protože se jim spolupráce s Microsoftem nelíbila). Té firmy, která pak záhy získala reputaci nejlepší podpory OpenGL ve spotřebních kartách a která si tuto reputaci drží až do dnešních dní. Možná je to náhoda, ale kdo ví.

Troufám si tvrdit, že lidé, kteří to mysleli s OpenGL vážně, udělali přechodem do NVIDIE jedině dobře. SGI už tou dobou ztrácelo vliv. Naopak NVIDIA začínala být tahounem spotřebního trhu s 3D akcelerátory a produkovala hromady akcelerátorů do běžných PC.

Koho by zajímalo válčení kolem API trochu víc, doporučuji začít zde.

Běžné PC a použitelné 3D

Rok 1997 byl ve spotřebním segmentu ve znamení dohánění 3Dfx Voodoo Graphics. Kdo si chtěl zahrát všechny významné herní tituly s 3D akcelerací, si musel „Voodoočko“ stejně koupit, protože spousta her používala API Glide, které bylo přímo od 3Dfx. Počet her akcelerovaných pomocí Direct3D se však rychle zvyšoval.

Mezi tím se během roku akcelerace rozšiřovala hlavně mezi běžné lidi prostřednictvím levnější grafických karet jako ATI Rage II a S3 Virge DX/GX. Rychlý pokrok trhu s 3D akcelerátory někteří nestíhali. Jedním z takových byl i Matrox. Když vydal další kartu z řady Millennium (II), přidal sice možnost akcelerovat také vykreslování textur bez filtrace, ale poloprůhlednost a další efekty kartě nic neříkaly. Pod Direct3D to znamenalo ošklivou kvalitu zobrazení, pod OpenGL extrémně nízký výkon, kdykoli program nepodporovanou funkci použil. Výkon navíc byl jen na úrovni o půl roku starší S3 Virge GX (když už byly hry na Millennium II rychlejší, bylo to jen proto, že nepoužily řadu efektů). Svého času tahoun 3D na PC najednou zapadl a stačilo k tomu trochu nepozornosti.

Herní schopnosti S3 Virge GX můžete vidět ve videu s komentářem, které jsem narychlo natočil na základě diskuze v jedné Facebookové skupině. Je to ukázka, jak se tehdy dalo hrát na levných kartách, když jste neměli na 3Dfx Voodoo.

Dorovnat a mírně překonat modlu všech hráčů od 3Dfx se podařilo až koncem roku – vychází totiž ATI Rage Pro a NVIDIA Riva 128. Jde o vlnu akcelerátorů (spolu s Rendition Verite 2200, 3Dlabs Permedia 2 a dalšími) pro nové rozhraní AGP (Accelerated Graphics Port), které je přímo navržené pro grafické karty. Nabídlo efektivnější způsob komunikace, (brzy) dvojnásobnou propustnost (AGP 2x) a nové funkce jako přímé načítání textur z hlavní paměti RAM (místo lokální paměti grafického čipu). AGP bylo součástí iniciativy Intelu udělat z PC plnohodnotnou alternativu k profesionálním UNIXovým stanicím. Vyřešit úzké hrdlo mezi grafickým čipem a zbytkem počítače bylo důležitým krokem.

ati-rage-pro-agp1x

ATI Rage Pro v první verzi s podporou AGP 1x (zdroj)

Čip Rage Pro je považován za první doopravdy použitelné řešení na 3D od ATI. Došlo totiž k výraznému navýšení výkonu úplně ve všem. Čip taktovaný na 75 MHz nově zvládá kreslení poloprůhledných polygonů bez ztráty výkonu, dokud není úzkým hrdlem přístup do paměti (100MHz 64bit SGRAM). Textury je možné kreslit rychlostí 53 Mpix/s, což čip posouvá mírně nad úroveň prvního Voodoo. Plný výkon jste si ovšem ve hrách užili až tak do roka od uvedení karty. ATI totiž neuvěřitelně podělala ovladače. Když je konečně napravila, rozhodlo se marketingové oddělení pro zajímavý krok. Čipy se přejmenovaly na Rage Pro Turbo (přestože byly jinak identické), což samozřejmě mezi zasvěcenými bylo spíše terčem posměchu. Druhý problém se týkal OpenGL. Zprvu ho ovladač vůbec nepodporoval. Pak se objevil alespoň pro systémy Windows NT (ve formě Mini-Client Driveru). Pořádného OpenGL ovladače (ICD) se uživatelé dočkali až v roce 1998. Tipuju, že to mělo co dočinění s vydáním hry Quake II.

nvidia-riva-128

NVIDIA Riva 128 – první úspěšný čip tohoto výrobce (zdroj)

První opravdu použitelná karta od NVIDIE byla právě Riva 128. NVIDIA nataktovala grafický čip i jeho paměť na 100 MHz. Zajímavostí je připojení paměti (SGRAM) 128bitově. 3Dfx Vodoo Graphics mělo architekturu s oddělenou paměti pro obrazové buffery a textury. Každá z části paměti byla připojena samostatně 64bitově. NVIDIA tedy udělala čip se stejnou šířkou paměťové sběrnice, ale paměť udělala unifikovanou na všechno. To bylo možné i díky tomu, že čip používal novější typ pouzdra typu BGA, do kterého je možné levně nacpat více vývodů.

Riva 128 je hrubým výkonem opravdu rychlejší než první Voodoo. Kreslení texturovaných polygonů je možné v závislosti na velikosti textury rychlostí 52-95 Mpix/s, což byla tehdy skvělá čísla. Klidně tak bylo možné dosáhnout i o 50 % vyššího výkonu ve hrách. Z Rivy se nicméně nestal okamžitý král trhu spotřebních karet. Jednak kvůli tomu, že existovala stále spousta významných her s podporou pouze 3Dfx Glide, a jednak kvůli tomu, že si k výkonu pomohla několika ústupky ve kvalitě zobrazení. Za nepřehlédnutelné považuji dva – výrazně horší kvalitu filtrace textur a mip-mapping na úrovni polygonů (místo pixelů). Textury zejména při použití světelných map (Quake, později Half-Life a další) mohou být výrazně degradované. Čím blíže pak na nějaký polygon vidíte, tím výraznější to je.

Grafický ovladač podporoval i OpenGL, jen byl v něm obraz kvůli nějaké chybě často tmavší, což se muselo řešit nastavováním gamma křivky pro výstup na monitor. Celkově však byla Riva 128 určitě zajímavější produkt než Rage Pro.

Čip se naplno snažil využívat možností původního AGP včetně funkce DiME (Direct Memory Execute), kdy je možné kreslit texturovaný polygon, jehož textura je v systémové paměti, aniž by se musela nejdříve kopírovat do paměti připojené k čipu (čip komunikuje se systémovou pamětí stejně, jako by byla jeho vlastní). Nejen, že to čip uměl, ale uměl to také rychle, což se dalo ověřit třeba ve hře Quake II při nastavení rozlišení 960×720. V tomto rozlišení vyplnily obrazové buffery celou paměť karty (4 MB), takže na textury nezbylo vůbec nic. Přesto byla hra v tomto rozlišení plynulá. První Voodoo v této hře akcelerovalo maximálně v rozlišení 640×480.

3dlabs-permedia2

3Dlabs Permedia 2 – čip použitelný na hraní her i CAD (zdroj)

Zmínku si zaslouží také 3Dlabs Permedia 2. Nejúspěšnější grafický čip od 3Dlabs, který byl zacílen někam na půl cesty mezi herní a profesionální řešení. S texturovacím výkonem 32-38 Mpix/s byl sice mírně slabší než první Voodoo, měl však několik zajímavých funkcí. Měl poměrně slušnou implementaci OpenGL (byť stále chyběly některé typy poloprůhlednosti) a uměl pracovat v 32bitových barvách (16,7 miliónu barev).

Díky 3D jádru zaměřenému spíše na kvalitu zobrazení, podpoře až 8 MB paměti a rychlé jednotce na zpracování trojúhelníků (+50% proti Riva 128, +200% proti Rage Pro) se Permedia 2 stala oblíbenou levnou kartou do počítačů určených na CAD. Tento univerzální úspěch se 3Dlabs už nikdy nepodařilo zopakovat.

Pokud vás zajímá, jak moc pozadu byly notebooky, tak v tuto dobu se v nich objevuje 3D akcelerátor S3 Virge MX (mobilní varianta podtaktované Virge GX2), což sice stačilo na některé méně náročné hry, ale na herní notebook to nebylo ani omylem. Přesto se dá říct, že Virge MX byla velký krok kupředu proti té bídě, která se v noteboocích nabízela do té doby.

Průmyslový přenosný počítač od Dolch. Jeden ze způsobů, jak mít 3D akceleraci na cestách s pomocí grafiky pro desktop.

Zajímavě problém 3D akcelerace v mobilním provedení řešil v článku tolikrát zmiňovaný John Carmack ještě v roce 1998 (málokdo jiný nechával tak moc nakouknout veřejnosti do způsobu, jakým pracuje). Používal průmyslový přenosný počítač Dolch s LCD panelem a několika vnitřními PCI sloty a narval do něj výkonnou profesionální grafickou kartu od Evans & Sutherland (jeho oblíbená karta ze stanice Intergraph se tam prý nevešla) a později Riva TNT. Takto vylepšený počítač si brával zejména na dovolené, které byly v jeho podání o sezení na hotelu bez kontaktu s okolním světem, trávené nerušeným programováním herního enginu a nových funkcí.

1998: 3Dfx Voodoo2 a tvrdá konkurence

Radost ATI a NVIDIE z překonání prvního Voodoo zkazilo 3Dfx hned z kraje roku 1998, když vydalo nástupce s jednoduchým názvem Voodoo2. Nová grafická karta má rovnou tři čipy taktované na 90 MHz (stejně jako paměť), starající se o vykreslování. Hlavní (FBI) se stará o komunikaci s počítačem, správu bufferů a kreslení pixelů (barva, osvětlení). Další dva čipy (TMU) se starají o zpracování textur a do hlavního čipu posílají výslednou barvu pixelu na základě textury. Pokud hra vykresluje polygony pouze s jednou texturou, je jeden z čipů neaktivní. Jakmile ovšem dojde na polygon s dvěma texturami, je možné využít oba čipy a vykreslit takový polygon úplně stejnou rychlostí (multitexturing). Každý z čipů má v plném zapojení 4 MB vlastní paměti (64bit).

3dfx-voodoo2

Diamond Monster 3D II s čipy 3Dfx Voodoo2 – modla všech hráčů (zdroj)

Zvolená architektura je ve znamení hrubé síly a není nejefektivnější z hlediska tranzistorů. Nicméně s ohledem na složitost výroby a náklady na vývoj, jde nejspíš o dobrý krok. Multitexturing je zajímavou funkcí a je to odpověď na hry jako Quake, které mají jednu texturu vždy pro materiál a druhou pro vypočítané osvětlení a stíny. V takových hrách je výkon při použití multitexturingu dvojnásobný. Voodoo2 dokáže kreslit texturované polygony rychlostí 76-84 Mpix/s, a to i při použití dvou textur.

Na ukázku, jak velký rozdíl to udělá, použiju opět Rivu 128. Ta sice při kreslení jedné textury s nízkým rozlišením může být i rychlejší než Voodoo2, ale dvě detailní textury už kreslí rychlostí pouhých 26 Mpix/s (fakticky musí polygon vykreslit dvakrát rychlostí 52 Mpix/s). Ve stejné situaci má Voodoo2 výkon třikrát vyšší (76 Mpix/s). Voodoo2 tedy byla karta navržená především pro nové náročné hry.

Výkon navíc šel ještě zdvojnásobit, když se dvě karty propojily do Voodoo2 SLI, kdy jedna karta kreslila lidé a druhá sudé řádky. To pak dalo rasterizační výkon na úrovni špičkových pracovních stanic. Pro profesionální nasazení (a ani vývoj her) nicméně Voodoo2 vhodná nebyla. Uměla stále jen 16bit rendering, textury nesměly mít rozlišení větší než 256×256 pixelů a nepodporovala akceleraci v okně. Díky tomu se výrobci v profesionálním segmentu stále nemuseli bát.

nvidia-riva-tnt

NVIDIA Riva TNT v provedení od Creative (zdroj)

NVIDIA Riva TNT přišla jen o půl roku později, ale v mnoha ohledech byla naprosto zásadní. Šlo o první kartu od NVIDIE, která nabídla akceleraci v 32bitových barvách, a TNT znamenalo TwiN Texel, tedy schopnost kreslit polygony se dvěma texturami (multitexturing). Podpora multitexturingu byla následně předmětem sporů o patenty ze strany 3Dfx, ale to je spíše na jiné povídání.

Čip pracoval na 90 MHz, což bylo méně, než původně NVIDIA chtěla, nicméně výrobní proces ještě nebyl tak zvládnutý. Paměť byla připojena 128bitovou sběrnicí a taktována byla na 110 MHz. To, že byl čip taktovaný méně než jeho předchůdce, je dáno jeho složitostí. Má v sobě totiž dvě pixel pipeline, a je tedy schopný kreslit dva pixely najednou. Funguje to tak, že dva pixely současně se kreslí pouze v případě, že jde o polygony bez textur, případně s jednou texturou. Jakmile se kreslí polygon se dvěma texturami, vypne se druhá pixel pipeline a její texturovací jednotka se připojí k první pixel pipeline. Takové řešení je proti Voodoo2 univerzálnější, nicméně z hlediska hrubé síly mělo Voodoo2 výhodu při multitexturingu ve větší šířce paměťové sběrnice (3x64bit vs. 128bit). Jakmile se ovšem kreslily polygony jen s jednou texturou, dokázala to Riva TNT dvojnásobnou rychlostí.

Čip byl navíc vybaven 16 MB unifikované paměti, což konečně stačilo na akceleraci i ve vysokém rozlišení (při 32bit barvách). V kombinaci s kompletní akcelerací OpenGL, včetně všech typů poloprůhledností, spekulárního světla, stencilových stínů a dalších funkcí, šlo o nejlepší spotřební akcelerátor pro neherní účely.

Našli se i další výrobci, kteří se snažili dohnat výkon. Takový Matrox například představil kartu Millennium G200, ve kterém konečně dodal funkce jako filtrace textur a poloprůhlednost, nicméně výkonově byla karta za Voodoo2 i TNT, takže karta byla vhodná především pro fandy značky, kteří chtěli hlavně rychlou 2D akceleraci, s kvalitním obrazem ve vysokém rozlišení a dobrým softwarem pro správu rozšířené plochy přes více monitorů.

Taktéž se objevila S3 Savage3D. Konečně nová architektura od S3, která nabídla řadu nových funkcí a mnohem lepší kompatibilitu s hrami. Výkon byl v nejlepším případě, když nic nekazily ovladače, klidně až na úrovni Voodoo2. K tomu tu byla lepší podpora akcelerace videa než na TNT, nicméně produkt se nakonec úplně neuchytil. Ovlivnil však vývoj 3D akcelerátorů alespoň kompresí textur S3TC, která s minimální ztrátou kvality umožňovala srazit velikost v paměti až na šestinu. Tím se dala šetřit paměť i její propustnost, což umožnilo pracovat s texturami ve vyšším rozlišení a přidat ve hrách detaily. Tuto kompresi textur postupně převzaly i ostatní akcelerátory.

ati-rage-128

ATI Rage128 – první 128bit čip od ATI (zdroj)

ATI nakonec přispěchalo s odpovědí na TNT. Jmenovala se Rage 128(GL) a fungovala podobně jako TNT. Také měla dvě pixel pipeline s možností využít jejich texturovací jednotky pro multitexturing. Karta však v 16bit barvách nenabízela nejlepší výkon a ještě v nich značně zaostávala co do obrazové kvality. Mnohem lepší situace byla v 32bit barvách, kde byla na úrovni TNT. Problém byl, že ani jedna z karet nebyla až zas tak výkonná, aby hráči raději nepreferovali 16bit barvy. ATI však dokázala různě ořezanými variantami docela dobře obsadit nižší segmenty trhu.

Zajímavostí je, že někdy v podobné době vychází také čip Rage LT Pro, tedy mobilní verze Rage Pro. Uživatelé notebooků tak byli téměř o rok zpoždění proti jejich desktopovým kolegům. Rage LT Pro byl ale stejně úspěch. Šlo o první notebookový 3D akcelerátor s použitelným OpenGL a výkonem, který stačil i na nové hry (alespoň v 640×480). To už jsem ovšem před pěti lety popisoval v historickém seriálu o mobilních grafikách (3. díl).

Ústup směr CAD

V případě texturovaného 3D zobrazení, tedy zejména různých simulátorů, jejichž kreslení se mnohdy příliš nelišilo od her, stále ještě existovaly profesionální karty, které byly rychlejší než Voodoo2 SLI a TNT. SGI v roce 1997 představilo novou pracovní stanici Octane, která používala stejnou architekturu grafik jako Indigo2, nicméně tyto grafiky byly na sběrnici s větší propustností a do stanice se navíc daly osadit rovnou dva procesory MIPS R10000, které i jednotlivě nabízely poměrně vysoký výkon při výpočtech s plovoucí řádovou čárkou (mnohem lepší než Pentia Pro).

sgi-portfolio-1997

Počítače od SGI v roce 1997 – Onyx2, O2 a Octane (zdroj: SGI press kit CD)

Pár měsíců před vydáním Rivy TNT byla grafika v SGI vylepšena novou generací čipů. Změna však byla jen ve zvýšení rychlosti o 15-20 %, žádný pokrok v architektuře z roku 1995 se nedostavil. Pořád to stačilo na výkonnostní náskok varianty Maximum IMPACT (MXE) a také je potřeba vzít v úvahu všechny ty speciální funkce jako barevnou přesnost 12 bitů (4096 úrovní pro R/B/G) na jediný barvový kanál místo běžných 8 bitů (256 úrovní pro R/G/B), které měly grafiky v PC při „true color“.

Na druhou stranu tady byl jeden problém, který se stále jen zvětšoval. Riva TNT je jediný čip a k němu několik pamětí. Maximum IMPACT je gigantická deska posetá hromadou čipů. Na stejný výkon tak byla cena karty od SGI mnohem vyšší už jen na výrobních nákladech. SGI si prostě vyrábělo grafiky stylem, jako by stále nemělo žádnou konkurenci, které by se bálo. To se muselo dříve, či později vymstít.

DODATEK: Čipy na Maximum IMPACT byly převážně hradlová pole a měly dohromady (bez pamětí) asi čtyři milióny hradel. Počet tranzistorů bude nejspíš čtyři až šestkrát vyšší. Jediný čip Riva TNT měl sedm miliónů tranzistorů.

sgi-octane-impact-sse-no-texture-module

Grafická karta IMPACT SSE pro stanici Octane. Když se k volným konektorům na desce připojí texturovací moduly, půjde o Maximum IMPACT (zdroj).

Problém s výrobní komplikovaností se týkal i dalších výrobců profesionálních karet. Mnohé ještě klidně měly grafickou pipeline rozloženou do šesti velkých čipů, oddělenou paměť pro buffery a pro textury a k tomu všemu ještě nějaký čip s vlastní pamětí na VGA kompatibilitu v DOSu, než se natáhnou plné ovladače. 3Dlabs a Evans & Sutherland však už během roku 1998 začaly produkovat integrovanější čipsety alespoň do nižších segmentů.

Zatímco minimalistický čipset E&S REALimage 2100 nabízel stále ještě slušný rasterizační výkon (50-80 % proti TNT) a výborný geometrický výkon, 3Dlabs v rasterizačním výkonu u nových produktů začal výrazně ztrácet.

intergraph-intense-3d-3410

Hi-end karta Intergraph Intense 3D Pro 3410 s 32MB paměti je tak dlouhá, že má na konci další montážní úchyt. Čip od Cirrus Logic slouží pro zobrazení v DOSu a kompatibilitu s VGA (zdroj).

Vysoký výkon při kreslení texturovaných polygonů byl doménou pouze těch nejdražších řešení. Ta ostatní se aspoň snažila o přijatelný výkon při kreslení bez textur. Ostatně ještě v této době bylo možné koupit profesionální akcelerátory bez texturovacích jednotek (případně jen bez texturovací paměti, za kterou si nechávali výrobci platit nehorázné sumy), takže takové karty byly použitelné jen tam, kde se s texturami vůbec nepracovalo.

Místo boje s rychle se rozvíjejícími spotřebními produkty se většina výrobců raději zaměřila čistě na segmenty, kde spotřební karty zaostávaly. To byly především různé CAD aplikace, kde se pracovalo s velmi složitými modely bez textur. Tam se totiž dokázaly využít jejich geometrické jednotky. Díky geometrické jednotce stačí do karty poslat polygony zadané původními trojrozměrnými souřadnicemi a světla zadaná pouze jejich parametry. Veškeré transformace a výpočty osvětlení udělá karta sama v geometrické jednotce.

V případě spotřebních karet jako Voodoo2 a TNT, které geometrickou (T&L) jednotku neměly, musel transformace z 3D prostoru do 2D projekce udělat procesor, stejně jako spočítat barvy jednotlivých vertexů (tj. vrcholů polygonů) na základě výpočtů osvětlení. Grafická karta ve výsledku pouze dopočítala parametry pro vykreslování trojúhelníků a plynulých barevných přechodů mezi vertexy. Karty s geometrickou jednotkou obvykle nabízely minimálně dvojnásobný výkon v počtu zpracovaných trojúhelníků za sekundu. Spotřební karty vycházely z toho, že detaily se dělají právě texturami, takže modely jsou dostatečně jednoduché, aby to pro procesor nebylo významnou zátěží.

Jedny z nejrychlejších profesionálních karet (včetně práce s texturami) překvapivě dělalo HP pro svoje pracovní stanice HP Visualize. HP postupně chápalo, že trh UNIXových grafických stanic čeká konec, protože PC s Windows NT začalo být až příliš dobré na to, jak je levné. Rozhodlo se tedy k výrobě PC grafických stanic a modifikaci svých grafických karet pro dosažení kompatibility s PC (připojení na PCI/AGP, DOS/VGA kompatibilita).

V polovině roku 1998 se tak na trh dostávají pracovní stanice od HP s Windows NT 4.0 a výkonnou grafickou kartou HP Visualize fx6+. Rasterizační výkon 100MHz čipu s dvěma pixel pipeline byl klidně o třetinu vyšší než na Riva TNT a geometrický výkon sedmi miliónů trojúhelníků za sekundu byl při dobových procesorech asi pětkrát vyšší (Pentium II/III na 500MHz zvládalo do 1,5 miliónu trojúhelníků za sekundu). Nicméně už pohled na masivní kartu dává tušit, že tohle řešení nikdy levné nebylo. Kdo chtěl ovšem maximální výkon i kvalitu zobrazení a cena ho až tak moc nezajímala (a takoví byli), ten mohl jít cestou fx6+.

hp-fx4plus

HP Visualize fx4+ je levnější variantou s menším geometrickým výkonem (chybějící čip). Pro plnou funkčnost karty je potřeba ještě připojit DOS/VGA modul (zabere sousední PCI slot) a volitelně také texturovací jednotky s vlastní pamětí (zdroj).

Pro hráče taková karta samozřejmě nebyla. Stejně jako většina ostatních profesionálních karet totiž neměla ovladače pro Windows 95/98 a Direct3D (na Windows NT ani nebylo možné mít hardwarovou akceleraci Direct3D). U her, které OpenGL podporovaly, zas nebyla jistota, že poběží správně už jen proto, že vývojáři obvykle svou hru s takovou kartou nikdy neměly možnost otestovat.

HP ještě tou dobou vydávalo HP Journal, takže si můžete o technických parametrech karty i nástrahách portace na Windows NT přečíst přímo u zdroje.

1999: SGI Visual Workstation 320

Pracovní stanice SGI O2 byla v době uvedení rychlá a integrovaná architektura se vyplácela. SGI ovšem podcenilo rychlost vývoje na poli grafických čipů. Stanice O2 sice o několik let později dostala rychlejší procesory a více paměti, ale grafické jádro bylo identické, s identickým výkonem. Pokud vám šlo v roce 1998 čistě o 3D výkon, bylo obyčejné PC s grafikou NVIDIA Riva TNT (za pár stovek dolarů) ve všem lepší řešení než SGI O2, která s použitelným procesorem MIPS R10000 stála přes $10.000. Další krok u SGI byl až SGI Octane, který ovšem pod $30.000 v použitelné konfiguraci s jedním procesorem nešel.

V SGI se rozhodli, že jejich nový levný počítač bude postavený na x86 procesorech a Windows NT. Stejně jako v HP samozřejmě chtěli využít svá vlastní grafická řešení, aby jim zůstala proti konkurenci nějaká výhoda.

sgi-visual-workstation-320-presskit-cd

SGI Visual Workstation 320 s podporou digitálního přenosu obrazu do SGI 1600SW (zdroj: SGI press kit CD).

Výsledkem byly stanice Visual Workstation 320 a 540, kdy nižší model mohl mít až dva procesory Pentium II/III a vyšší až čtyři. Vyšší měl také více PCI slotů a slotů pro paměťové moduly, ale základ byl v obou stejný.

Na rozdíl od HP a dalších výrobců stanic vyrobilo SGI počítač, na kterém sice běžel Windows NT 4.0 se speciálním zavaděčem (a později generická verze Windows 2000), ale nebyl kompatibilní s PC. Pominu-li operační systém a architekturu procesoru, byly tyto počítače velmi podobné ostatním SGI. Měly ARC zavaděč místo BIOSu, takže DOS, ani Windows 98 byste na nich nemohly spustit. Startovaly v grafice a už zavaděč si uměl přečíst konfiguraci z monitoru, aby nastavil správnou obnovovací frekvenci.

sgi-320-deska-1

sgi-320-deska-2

Základní deska našeho SGI 320 během oprav (pod chladičem s ventilátorem je grafická jednotka kombinovaná s paměťovým řadičem). Jde o demo kus z českého SGI, který byl osazen pouze jedním procesorem (více info).

Grafická karta, naprosto nekompatibilní s DOSem například vůbec neznala textový režim, ani jakékoli rozlišení pod 640×480. Jádro nekompatibility počítače ale bylo někde jinde. SGI použilo stejnou integrovanou architekturu jako v O2. Takže je grafické jádro uvnitř paměťového řadiče, ke kterému je připojena spousta speciálních RAM modulů pro maximální paměťovou propustnost. K řadiči jsou následně připojeny také všechna další zařízení včetně až čtyř procesorů.

Všechny stanice SGI Visual Workstation jsou v základu vybaveny digitálním portem Firewire, analogovými vstupy/výstupy pro PAL/NTSC signál a speciálním zvukovým čipem s nízkou latencí (který si ovšem docela solidně nerozumí s hrami). Při práci s videem je možné opět využívat „zero copy“ přístupu, kdy obraz ze vstupu je ukládán bez přídavných bufferů přímo do hlavní paměti, odkud ho může grafická karta (opět přímo) využít jako dynamickou texturu na 3D objektu. Lze tak vytvářet real-time efekty například pro televizní vysílání.

Tradiční uživatelé SGI tento produkt příliš neuznávali, protože ho brali jen jako „blbé PCčko“. Někteří si také mysleli, že kvůli použití podobné architektury jako v O2, bude výkon ve 3D stejně nízký. Opak byl pravdou. Grafické jádro se dočkalo výrazného zlepšení. Má nejspíš dvě pixel pipeline na 100 MHz (každá s jednou texturovací jednotkou) a všechny operace umí dělat v jednom taktu. Rasterizační výkon je někde u 180 Mpix/s. Je jedno, jestli je polygon poloprůhledný, texturovaný, nebo oboje – výkon je pořád stejný. Ke snížení výkonu dochází až v případě detailních textur, kdy může klesnout ke 150 Mpix/s. Takové řešení trumfne výkon Rivy TNT i Voodoo2 SLI (s výjimkou multitexturingu).

Geometrický výkon (integrované jednotky) okolo 3,5 miliónu trojúhelníků za sekundu byl více než dvojnásobný ve srovnání s tím, co nabízely spotřební karty pomocí hlavního procesoru, ale i s tím, co měla zastarávající architektura grafik IMPACT v dražších stanicích od SGI.

Na přizpůsobení operačního systému spolupracovalo SGI s Microsoftem, který mu zpřístupnil zdrojové kódy. Na představení počítače byl přítomen i Bill Gates. Kdo chce vidět také naprosto příšerné devadesátkové promo video, nechť pokračuje zde.

Zajímavá byla i cena počítačů. SGI 320 s jedním Pentiem II, 128MB RAM a IDE diskem stálo pod $4.000. Tedy méně než konkurenční profesionální (PC) stanice. Našlapaná konfigurace s dvěma procesory, spoustou paměti a SCSI disky vyšla sice na $10.000, ale šlo o počítač, který nejen že zašlapal O2 do země, on mohl být zdatnou výkonovou konkurencí i pro Octane (byť bez některých speciálních funkcí).

Jenže firma už tou dobou věděla, že se řítí do záhuby a mnoho interních procesů bylo nevhodně nastavených. Jedním z velkých problémů, který se podepsal na SGI 320/540 bylo odměňování obchodníků, pro které nemělo smysl zákazníkům nutit cokoli jiného než ty nejdražší a nejvýkonnější stroje. Celá řada tak neměla oporu ani uvnitř samotné firmy, a žádná velká revoluce se tedy nestala.

sgi-320-and-o2

Naše SGI 320 a O2 – oproti O2 je nová stanice mnohem větší.

K SGI 320 se svého času pozitivně vyjádřil i John Carmack, který si jeden našlapaný kus koupil a po nějaký čas jej spokojeně používal k vývoji hry Quake III Arena (plan file, strana 15; doporučuji také hned první zápisek v souboru – ten vám dá dobrou odpověď, proč jsem tu prakticky nemluvil o platformě Apple Mac).

Přibližně v polovině roku 1999 se už objevila nová generace spotřebních grafických čipů, kdy většinou šlo z hlediska 3D jen o mírně vylepšená jádra s vyššími takty a podporou rychlejší sběrnice AGP 4x. NVIDIA Riva TNT2 byla přesně ten případ, kde se navýšení výkonu dosáhlo především navýšením taktu o 50 %, což stačilo na překonání SGI 320 (ale určitě to není jediná změna, když TNT2 má skoro dvojnásobek tranzistorů). 3D jádro ATI Rage 128 Pro se od předchůdce lišilo trochu víc, ale princip byl podobný.

Zajímavá situace byla u 3Dfx, které sice tvrdě pracovalo na nové architektuře, ale její dokončení bylo v nedohlednu, takže pro utišení zákazníků vychází Voodoo 3. Karta, která má výkon jako Voodoo2 SLI, ale původních šest čipů je nahrazeno jediným (s unifikovanou pamětí) a navíc i schopným 2D jádrem. Hi-end od 3Dfx tedy konečně nevyžaduje další grafickou kartu.

Z hlediska výkonu nebyl Voodoo 3 špatný čip. Hry na něm běžely velmi dobře, ty napsané také pro 3Dfx Glide kolikrát i lépe než na konkurenčních řešeních. Navíc tu bylo stále velké množství starších dobrých her, které jiné API než Glide ani nepodporovaly (což se nadšenci snažili řešit výrobou neoficiálních wrapperů, které volání Glide převádějí na Direct3D, případně OpenGL – sám jsem takto kdysi pár her dohrál). Čip byl díky jednodušší architektuře s jednou pixel pipeline s dvěma texturovacími jednotkami (místo dvou plnohodnotných pixel pipeline, kde každá má svou texturovací jednotku jako u NVIDIE/ATI) lépe taktovatelný. Základ začínal na 143 MHz a nejvyšší modely šly postupně až k 200 MHz. Za takt však nikdy nebylo možné nakreslit víc než jeden pixel.

Problém je, že z hlediska 3D bylo jádro už poměrně zastaralé. Akcelerace funguje pouze v 16bit barevné hloubce (byť ta díky návrhu čipu vypadá lépe než u konkurence), textury stále ještě nepodporují rozlišení více než 256×256 a chybí řada funkcí, které už byly jinde běžné. Karty se sice dělaly i pro AGP, ale z jeho rozšířených funkcí nepoužily nic. 3Dfx sice nakonec vydávalo i plnohodnotný OpenGL (ICD) ovladač, ale nešlo o tak dobrou implementaci jako u NVIDIE.

3Dfx, kdysi lídr trhu, najednou ztrácel dech a management svými chybnými rozhodnutími utrácel peníze, které jinak mohly jít do vývoje. Mezi ne zrovna nejlepší rozhodnutí patřil nákup společnosti vyrábějící karty a postupný konec kontraktování samotných čipů všem ostatním. Firma se tak pomalu, ale jistě přibližovala finančním potížím.

NVIDIA GeForce 256 přichází

Příchod první GeForce koncem roku 1999 byl důležitým mezníkem v historii grafických karet, byť v té době si to mnozí recenzenti přes herní hardware ani neuvědomovali. Šlo o 256bit čip, který měl rovnou čtyři pixel pipeline. Přestože tedy měl nízký takt 120 MHz, v každém taktu mohl vykreslit až čtyři pixely současně (dva při multitexturingu). Cena celé karty byla $300.

nvidia-geforce-256

Jedna z hráčských karet vybavená čipem NVIDIA GeForce 256 (bez chladiče, zdroj).

Další zásadní změnou byla integrace geometrické jednotky (T&L), což v případě spotřebního čipu byl poměrně nečekaný krok. NVIDIA vycítila, že geometrické nároky ve hrách půjdou nahoru a je na čase se tomu přizpůsobit. Rasterizační část se také dočkala technologických vylepšení včetně per-pixel osvětlení pomocí DOT3 bump-mappingu. Touto technologií je možné vytvořit dojem detailnějšího povrchu – vedle standardní textury se aplikuje na polygon také normálová textura, která pro každý bod (texel) udává jeho normálový vektor. Tento normálový vektor definuje, jak se následně na daný bod aplikuje osvětlení. Podobnou technologii později ve velkém využila hra Doom 3.

normal-mapping

DOT3 bump-mapping (normal mapping) aplikovaný na polygon s texturou zdi – oba obrázky používají stejně primitivní model složený ze dvou trojúhelníků. Obrázek vpravo má navíc ještě normálovou mapu, která určuje členitost povrchu (zdroj a vysvětlení).

Na čipu GeForce 256 pracovalo mnoho lidí původně z SGI, kde pracovali na nejvýkonnějších systémech RealityEngine a InfiniteReality. Přítomnost některých funkcí typických pro profesionální karty tedy nemusela být až zas tak překvapivá. Dokud šlo ovšem o herní kartu, nemuseli se výrobci profesionálních řešení tolik bát.

2000: NVIDIA Quadro a zásadní zlom pro profi segment

To se změnilo začátkem roku 2000, když se na trh dostala karta ELSA Gloria II za $650. NVIDIA se dohodla s výrobcem profesionálních karet ELSA na výrobě řešení s čipy NVIDIA Quadro. Technicky bylo Quadro stejný čip jako GeForce 256, dokonce i popisek čipu pod chladičem hlásal GeForce. NVIDIA však do křemíku v čipu přidala i funkce, které standardně nebyly v herních kartách využívány. Odlišným BIOSem bylo možné tyto funkce využít, pokud se do operačního systému nahrál také speciální ovladač.

nvidia-quadro-sdr-elsa-gloria-ii

Elsa Gloria II (bez chladiče) – první karta s čipem Quadro působí docela nevinně v porovnání s konkurencí. Konektor u VGA slouží pro rozšiřující modul s digitálním výstupem DVI (zdroj).

Čip v případě varianty Quadro byl taktován mírně výše (na 135 MHz), což umožnilo v kombinaci se 166MHz (128bit) pamětí (64 MB) dosáhnout na rychlost 465 Mpix/s při kreslení polygonu s texturou v nízkém rozlišení. U textur s vysokým rozlišením klesl výkon klidně na 200 Mpix/s (resp. 100 Mpix/s při multitexturingu). Bylo zde vidět, že čip je na zvolenou paměť příliš výkonný.

Výkon karty se speciálním ELSA driverem nebyl v profesionálních programech úplně vyrovnaný. Někde výrazně převyšoval i mnohem dražší konkurenci, někde zaostával. S generickými ovladači od NVIDIE zas dobře fungovaly jiné programy a každý z ovladačů měl nějaké své problémy se stabilitou a vykreslováním. Přesto za dané peníze měla karta hodně co nabídnout a v nižším CAD segmentu, na který zaútočila, konkurenci pěkně zatopila. S použitím NVIDIE na profesionální programy byl stejný problém jako v případě používání profi grafik na hry – vývojáři softwaru takovou kombinaci mnohdy neměly důvod testovat, takže pro daný hardware své dílo neoptimalizovali.

es-lightning-1200

E&S Lightning 1200 měl ještě texturovou paměť ve slotu jako volitelnou komponentu (zdroj).

Konkurencí mezi levnými profi kartami byl E&S Lightning 1200 za $400, který ovšem měl jen asi čtvrtinový geometrický i rasterizační výkon. Karta však byla levnější a dobře podporovaná. Další konkurencí byl produkt od 3Dlabs, který byl založený na čipu Permedia 3. 3Dlabs se s ním snažil zopakovat úspěch předchůdce mezi spotřebními kartami, ale něco bylo v jeho designu špatně. Přestože měl dostatečně rychlou paměť, výkon šel rychle dolů s vyšším rozlišením textur. Pro hry byla taková karta nevhodná. Rychlost kreslení bez textur byla nanejvýš 110 Mpix/s, takže také žádná sláva, ale pokud se v CADu pracovalo především s anti-aliasovanými (vyhlazenými) čárami, byl výkon „jen“ poloviční proti Quadru.

3dlabs-oxygen-gvx1

3Dlabs Oxygen GVX1 – menší čip u konektoru AGP je geometrická jednotka (zdroj).

3Dlabs nabízel kartu v profi provedení jako Oxygen VX1 a GVX1, kdy druhá z karet měla navíc dedikovaný geometrický procesor. Jeho výkon byl proti NVIDII poloviční až třetinový. Právě 3Dlabs Oxygen GVX1 byla přímá konkurence, protože stála prakticky stejně jako Quadro ($680). Nižší výkon se karta snažila vynahradit tím, že ve speciálních případech vykazovala větší přesnost při kreslení než čip od NVIDIE. Kromě toho 3Dlabs byla v profi segmentu zavedená značka, což mělo také svou váhu.

Asi nejlépe si z konkurentů v případě CADů vedla karta Diamond FireGL 1 ($770), která byla založena na tou dobou úspěšných rasterizačních čipech od IBM. Tyto čipy byly výrazně optimalizované na kreslení bez textur, nicméně rasterizační i geometrický výkon měly v takových situacích jen poloviční.

Tohle určitě stačí pro nastínění situace, jak si první Quadro vedlo. Hrubý výkon byl výrazně vyšší, a byť nebyl zprvu naplno využit, potenciál byl jasně viditelný. Pandořina skříňka byla otevřena – krok NVIDIE ukázal, že primárně herní architektura může být velmi dobrá i pro profesionální nasazení. Tak dobrá, že může překonat dražší konkurenci zavedených výrobců.

NVIDIA měla totiž jednu ohromnou výhodu. Vyráběla čipy v mnohem větším množství. Pokud tedy bylo možné udělat herní a profesionální produkt ze stejného kusu křemíku, znamenalo to ohromné snížení ceny na výrobu i vývoj (uživatelé Quadra si připlatili jen za vývoj speciálních funkcí navíc proti herní kartě, zbytek vývoje byl sdílený). Výrobci čistě profesionálních řešení prodávali v menších objemech, což znamenalo větší ceny karet. Konkurovat NVIDII tedy bylo v dlouhodobém horizontu jen velmi obtížné.

ati-firegl-4-ibm

ATI FireGL 4 -(bez chladičů) snad jediný 3D akcelerátor od ATI, který nemá čip ATI. Srdcem jsou rasterizér IBM RC1000 a geometrická jednotka IBM GT1000 (zdroj).

ATI následovalo NVIDII a rozhodlo se také dělat profesionální grafiky. Koupilo proto rychle profesionální divizi karet Diamond Multimedia a v roce 2001 byla na trhu dostupná první karta ATI FireGL (4). Ta se mohla pochlubit velmi slušným výkonem – zejména při kreslení polygonů bez textur byla s 1100 Mpix/s opravdu rychlá. Jen se tedy hodí dodat, že tato karta ještě byla založena na čipech IBM, neboť v prvních čipech Radeon se ještě s profesionálními funkcemi nepočítalo.

Konec pracovních stanic od SGI

Pracovní stanice Visual Workstation 320 a 540 byly zaříznuty hned začátkem roku 2000 a nahradily je nové modely, které byly ale ve skutečnosti jen obyčejná PC se základními deskami od Aceru a grafikami převážně od NVIDIE. Tyto grafiky byly ovšem brandované jako SGI VPRO V3 a V7, což bylo vyústění soudních sporů mezi SGI a NVIDIÍ kvůli lidem, kteří do NVIDIE přešli.

sgi-octane2-na-bytefestu

Profesionální počítač musí být především velký a těžký. Zde ten náš vedle 20″ LCD panelu na akci Bytefest (zdroj: kompletní galerie).

Název VPRO byl použit záměrně, aby marketingově odpovídal nové grafické architektuře od SGI, která se objevila v nové stanici SGI Octane2 uvedené stejně jako Quadro začátkem roku 2000. Tato stanice byla vybavena jedním až dvěma procesory MIPS, až 8 GB operační paměti, třemi sloty na SCSI disky a některou z nových SGI VPRO grafik (V6, V10).

Nové grafiky se zásadně lišily tím, že celá grafická pipeline byla konečně integrovaná do jediného čipu. Ten uměl stále několik velmi zajímavých funkcí, které byste u Quadra hledali marně. Především šlo opět o 48bit barevnou hloubku, kde každý barevný kanál měl 12bit přesnost. Taktéž zde byl akumulační buffer, pomocí kterého se daly dělat efekty jako rozmazání pohybem nebo hloubka ostrosti. Základní karta V6 měla 32 MB paměti, zatímco vyšší model V10 měl rovnou 128 MB.

sgi-octane2-dual-head

Vyšší integrace grafického řešení umožnila osadit dvě grafiky do jednoho stroje a použít dva monitory s plnou akcelerací OpenGL (zdroj: SGI press kit CD).

Výkon byl v mnoha ohledech na úrovni Quadra. To vítězilo, když šlo o netexturované polygony, nebo textury s nízkým rozlišením. Naopak s detailními texturami a poloprůhledností se projevila větší paměťová propustnost řešení od SGI.

Geometrický výkon byl v některých případech stejný a někde jen poloviční. Za to nejspíš mohla nějaká chyba v návrhu čipu (ostatně nebyla jediná) a vyřešila ji o rok později nová revize karet přejmenovaných na V8 a V12 (velikost paměti a rasterizační výkon se už ovšem neměnily). Poté se geometrický výkon srovnal.

sgi-octane-vpro-v6

Grafická karta VPRO V6, která přišla spolu se stanicí Octane2 již má celý akcelerátor integrovaný v jednom čipu. Uživatelé starší stanice Octane mohli upgradovat prostou výměnou karty (zdroj).

Jenže zatímco SGI už u těchto grafických karet zůstalo a nikdy neudělalo lepší (ani ve stanicích, které uvedlo v roce 2004), půl roku po prvním Quadru vyšlo Quadro DDR (ELSA Gloria II Pro), které napravilo pomalou paměť. DDR čipy (dual-data rate) pracovaly efektivně na dvojnásobném taktu (333 MHz), což zejména v situacích se spoustou poloprůhledných polygonů a detailními texturami zvedlo výkon až o 50 %.

SGI pak již nemělo nic, čím by výkon dorovnalo. Octane2 byla poslední stanice, která se ještě snažila držet krok s hi-endem přes grafiku. Další stanice jako Fuel a Tezro v následujících letech měly už jen ty samé grafiky bez byť jen sebemenšího zrychlení. Kupovat SGI rázem mělo smysl pouze ze dvou důvodů: Když jste potřebovali počítač s kompatibilní architekturou jako nějaký grafický super-počítač od SGI (Onyx), případně když jste měli software, který jinde než na IRIXu neběžel (tj. vendor lock-in). Podobné to bylo i se stanicemi od Sunu (Sun ovšem vzdal snahu o vlastní grafiky ještě dříve). Důležité programy, které dříve existovaly jen na UNIXových stanicích, už jejich vývojáři dávno přepsali pro Windows.

flame_tezro

SGI Tezro byla poslední stanice od SGI. Vyšla v roce 2003 a ke konci umožňovala osazení až čtyř 1GHz procesoru MIPS R16000 a 16GB RAM. V roce 2006 byla výroba ukončena bez náhrady (zdroj).

V grafických super-počítačích ještě chvíli mělo SGI slovo, protože dokázalo spojit hromadu modulů s vlastními procesory a grafikami do jednoho systému, na kterém běžel jeden operační systém. Tuto technologii dříve koupilo od firmy Cray a jmenovala se Cray-link (později NUMA-link).

Před prvním bankrotem ještě SGI zkusilo přejít na grafiky od ATI, ale konec už byl neodvratitelný. Firma se ještě několikrát zrestartovala, aby pokračovala spíše v serverovém segmentu (díky NUMA-link). Jakýkoli vývoj grafických řešení už byl ovšem dávno u konce. Před pár lety bylo SGI právě kvůli technologii NUMA-link odkoupeno firmou HPE (Hewlett Packard Enterprise), která si spočítala, že je levnější celé SGI koupit, než aby si technologii pouze licencovala.

Konec ostatních

Evans&Sutherland postupně snahy v grafických kartách pro pracovní stanice vzdal a začal se naplno věnovat velkým specializovaným vizualizačním systémům.

HP už po grafikách Visualize fx žádné další vlastní nedělalo. Přešlo na karty FireGL založené na rasterizérech IBM, aby následně celou část UNIXových stanic zařízlo v rámci restrukturalizací. Po spojení s Compaqem se obecně původní pracovní stanice od HP zrušily a byly nahrazeny těmi Compaqovskými, založenými na běžnějších komponentách.

Matrox měl asi největší snahu o návrat do grafického byznysu, když v roce 1999 přišel se silnou konkurencí pro TNT2 a Voodoo3. Šlo o čip Matrox Millennium G400, který vynikal jak kvalitou zobrazení, tak výkonem. Ve verzi MAX se později na chvíli stal dokonce nejvýkonnějším spotřebním čipem na trhu. Pak už to šlo ale s Matroxem jen z kopce. Jeho další karty byly různé cenově redukované varianty s podporou dvou monitorů z jednoho čipu. Některé měly navíc i špatnou kvalitu analogových výstupů, čímž si to pokazily už i u některých skalních příznivců.

Posledním větším pokusem o návrat byl 512bit čip Matrox Parhelia 512, který ovšem z mnoha různých důvodů díru do světa neudělal. Ještě dnes můžete produkty Matroxu potkat (jako zobrazovače pro hodně monitorů). Překvapivě je ale největší šance na potkání u jádra G200 (rok 1998), které se integruje do řídících čipů některých serverů (HPE, DELL) jako primitivní 2D grafika, když do serveru nic dalšího nevložíte. Díky tomu je G200 asi nejlépe podporovaný čip z 90. let, protože má podporu i v nejnovějších operačních systémech Linux a Windows Server 2019 (kde dokonce funguje i primitivní akcelerace starého Direct3D). To je ovšem asi všechno.

matrox-parhelia-512

Matrox Parhelia byl první 512bit čip. Nabízel 10bit přesnost na barvový kanál a možnost hrát přes tři monitory. Úspěch se však nedostavil (zdroj).

Intergraph prodal v roce 2000 svou divizi grafických karet společnosti 3Dlabs. Divizi pracovních stanic a serverů prodal SGI. U 3Dlabs se stala grafická část Intergraphu na chvíli hlavním tahounem pro hi-end CAD řešení (Wildcat II/III). Tedy do doby, než 3Dlabs udělalo nové, podstatně integrovanější vlastní čipy P9 a P10 (konec roku 2002). S těmi ještě nějaký čas konkurovalo geometrickým výkonem (30 miliónů trojúhelníků za sekundu), kreslením polygonů bez textur (1400 Mpix/s) a speciálními funkcemi, ale na práci s texturami byly tyto čipy stále nevhodné (pomalé). Poslední generace čipů přichází v polovině dekády, čímž 3D akcelerační snahy 3Dlabs končí. Lidé z vývoje přešli převážně do Intelu a NVIDIE. Zbytek společnosti se začal věnovat něčemu jinému.

Výkonné rasterizátory od IBM dopadly stejně jako spousta jiných produktů v IBM. Chvíli je IBM dělala a pak už ne. Tak to tam chodilo vždy.

ArtX a ovládnutí ATI

Zajímavý osud potkal lidi z SGI, kteří pracovali na grafice (a vlastně celkovém hardwaru) herní konzole Nintendo 64. Někteří z nich byli evidentně nadšení prací na levném herním hardwaru pro masy a návrat zpět k řešení problémů profesionálního segmentu je nelákal. Odešli tedy v roce 1997 z SGI a založili novou firmičku ArtX s cílem vyvinout výkonnou herní grafiku.

Základní kapitál jim přihodil Acer a mohlo se začít pracovat. Ani ne po roce se ale ozvali staří známí z Nintenda, když začali plánovat novou herní konzoli. Chtěli spolupracovat zas s těmi samými lidmi jako dříve a bylo jim jedno, že už změnili firmu. Obě strany si nakonec plácly, SGI ostrouhalo, ArtX získal jistý přísun peněz a mohlo se začít pracovat na konzoli, která později spatřila světlo světa jako Nintendo GameCube.

nintendo-gamecube

ATI v hráčském hi-endu nebylo koncem devadesátých let zrovna preferovanou volbou. Její čipy rozhodně nebyly špatné a ty nejvýkonnější ani moc nezaostávaly za konkurencí, ale reputace nebyla nejlepší, pokud došlo na otázku kvality a stability ovladačů. Na podporu OpenGL si uživatelé ATI čipů museli také počkat déle než jiní a ještě nebyla kvalita nic extra.

Pro ATI byly zajímavé jiné segmenty – mělo dobré levné karty do běžných počítačů. Za rozumné peníze a s nadstandardní akcelerací přehrávání videa. Jenže do low-endu si mu koncem milénia začal cpát Intel s jeho integrovanými grafikami. Pro ATI to bylo velmi nepříjemné, protože jeho čipy byly v kdejakém notebooku a na základní desce leckterého supermarketového, případně pracovního PC. Intelovské grafiky se sdílenou pamětí sice zprvu opravdu za moc nestály, jenže ta cena a integrace byly lákavé. Modely čipové sady s grafikou a bez se cenově až zas tak nelišily a výrobce počítače navíc ušetřil místo na základní desce jinak potřebné pro grafický čip a jeho paměti. Není divu, že to ATI stálo polovinu tržního podílu.

ATI byla firma bez jasného cíle a vypadala spíš jako hromada technických lidí bez jasné zodpovědnosti. Začátkem roku 2000 se ATI rozhodlo koupit společnost ArtX za 400 miliónů dolarů, čímž překonalo nabídky ostatních. Odkoupení ArtX může trochu připomínat, když Apple koupil společnost NeXT, čímž se do Applu vrátil Steve Jobs. Ten pak vyhodil všechny lidi, co mu nebyli o dekádu dřív při jeho nuceném odchodu loajální, a do vedení dosadil lidi z NeXTu. Ve výsledku tedy ani nebylo jasné, kdo vlastně koho koupil.

S ArtX to bylo podobné. Mělo lepší sídlo (v Palo Alto), které se následně stalo sídlem ATI. Šéfem ATI se stal také člověk z ArtX a podobně i mnoho lidí na důležitých pozicích. Ti se rovnou pustili do zásadní restrukturalizace, která měla pomoci stát se jedničkou na trhu.

3dmark01-advanced-pixel-shader-test

Efekt lomu světla a odrazu na vodní hladině je vytvořený pomocí Pixel Shaderu.

Lidé z ArtX přešli po dokončení hardwaru GameCube na další projekt – čip ATI R300 (článek EETimes). V druhé polovině roku 2002 spatřil světa výsledek v podobě ATI Radeon 9700. Grafické karty s podporou DirectX 9.0 (Shader Model 2.0), která přišla na trh výrazně dříve než konkurence od NVIDIE (GeForce FX), a i po jejím příchodu zůstala jedničkou na trhu. Nejsem si jistý, zda se ještě někdy podařilo ATI tak nakopat zadek NVIDII jako právě toho roku. Ale zpátky k profesionálním kartám…

Závěrem

NVIDIA Quadro bylo posledním hřebíčkem do rakve výrobců grafických stanic zaměřených na profesionální segment. Prvním byl Windows NT 3.5, který do PC přinesl výkonný a stabilní operační systém s preemptivním multitaskingem, zabezpečením, podporou více procesorů a knihovnami OpenGL. Druhým byl procesor Pentium Pro, se kterým konečně byly PC stanice srovnatelné v mnoha oblastech výpočetního výkonu s konkurencí. Nešlo sice o nejrychlejší procesor (Alpha a MIPS R10000 byly lepší zejména ve floating-point matematice), ale cena celého počítače s takovým procesorem měla na profesionální segment mimořádně zajímavý poměr cena-výkon. Třetím a posledním bylo právě NVIDIA Quadro – karta, která byla výkonem ve většině situací stejná nebo lepší ve srovnání s jinými profesionálními kartami. V době jejího vydání jste si už mohli koupit víceprocesorový systém s vysoko-taktovanými procesory Pentium III (majícími SSE jednotky) a operačním systémem Windows 2000, který byl nejen rychlý, ale také uživatelsky velmi přívětivý (asi víc než všechny Microsoftí systémy po něm). V tu dobu už navíc byla drtivá většina důležitých grafických programů portována na platformu PC. Poptávka po UNIXových grafických stanicích sice ještě existovala, ale byla omezena na velmi malé a specifické segmenty trhu.

Ani pro profesionální výrobce mimo svět UNIXu nebyla situace jednoduchá. Abyste si za svou profesionální stanici mohli říct víc peněz, musíte mít nějakou konkurenční výhodu. To se ovšem dělá těžko, když systém dává Microsoft každému, kdo si o něj řekne. Nejvhodnější procesor pro něj je nakonec něco od Intelu a AMD, kteří je ale také prodávají všem. No a nejvýkonnější univerzální grafika je NVIDIA Quadro, kterou může dát do počítače i Lojza, který skládá počítače v pokojíku na vesnici. Najít pak něco, čím se odlišíte a zákazníci o to doopravdy stojí, je docela problém.

NVIDIA samozřejmě s jedním Quadrem nepřestala. Postupně začala dělat profesionální variantu od každé generace GeForce. Speciální ovladače pro Quadro se dostaly pod taktovku NVIDIE a celkem rychle doznaly výrazných zlepšení. S tím, jak se Quadro stalo hlavním tahounem profi trhu, začaly být i speciální programy pro něj mnohem lépe vyladěné, takže výrobci programů značně usnadnili NVIDII práci.

Dlouhou dobu byl po technologické stránce rozdíl karet Quadro od GeForce především v nasazení na CAD – tedy lepší optimalizaci na práci s více 3D viewporty, rychlém kreslení (vyhlazených) čar a podobně. U moderních karet jsou ještě nějaké další rozdíly – třeba 10bit přesnost na barvový kanál je sice u GeForce také podporována, ale pouze v celoobrazovkovém režimu. Když chcete pracovat s 10bit přesností (místo 8bit) v okenních aplikacích, musíte si koupit Quadro (nebo Radeon Pro od AMD).

Stejný základ herní a profesionální varianty se ukázal jako výhodný i pro notebooky. Již od prvního mobilního čipu NVIDIE (GeForce 2 Go) existovala také profesionální varianta. V kombinaci s příchodem kvalitních hi-end panelů s rozlišením 1400×1050 a 1600×1200 najednou bylo možné pracovat i mimo kancelář s pohodlím, které bylo do té doby nemyslitelné (nedávno jsem popisoval, jak takový notebook vypadal v roce 2002).

ATI (AMD), NVIDIA a Intel postupně požraly vývojáře z ostatních firem a trh už je dnes dávno relativně ustálený. Do notebooků a čehokoli většího už se moc nikdo jiný nežene, protože by to vyžadovalo moc peněz a výsledek je kvůli silné konkurenci nejistý. Je tu sice pár integrovaných grafických jader pro mobily a tablety od jiných firem, ale navzdory velkohubým prohlášením některých z nich, to zatím nevypadá, že by někdo měl expandovat i do (výkonově) vyšších segmentů.

Taky se hodí dodat, že všechno, co jsem zde popisoval, byly vlastně z dnešního pohledu velmi primitivní grafické čipy. U některých byla možná omezená programovatelnost, ale většina grafických funkcí šla přes jasně definované jednotky dělající fixní funkce (fixed function pipeline). Nedlouho po příchodu první GeForce přišly programovatelné jednotky ve formě Pixel (Fragment) a Vertex (Geometry) Shaderů. Najednou bylo možné nad jednotlivými vertexy a pixely vykonat nějaké matematické funkce a dosáhnout tím dalších efektů (hezčí vody, zvlnění vzduchu…).

nvidia-tesla-p4

Moje dnešní hračky – moderní výpočetní (GPGPU) karta od NVIDIE. Sice jen jednoslotová, v low-profile provedení a s pasivním chladičem, ale uvnitř je jádro ve stejné konfiguraci jako v GeForce GTX 1080. Díky malým rozměrům se jich do běžného serveru vejde až pět.

Další revolucí byly unifikované shadery a GPGPU (General-Purpose computing on Graphics Processing Units), kde se začalo využívat schopnosti grafiky rychle vykonat jednoduché operace nad velkým množstvím dat. Grafický čip tak rázem začal být plnohodnotný koprocesor pro celou řadu dalších činností včetně umělé inteligence (deep learning). V této oblasti dnes s přehledem kraluje NVIDIA a v enterprise sféře má prakticky monopol. Jestli se AMD zmůže na pořádnou konkurenci víc než jen v herních řešeních, to se ještě uvidí.

Pod čarou

Tento dlouhý (naštěstí poslední) díl vám přinesla chřipková epidemie. V izolaci jsem se trochu nudil, což mi umožnilo na článku pracovat několik dní téměř v kuse. Během práce na tomto seriálu, která se táhla přerušovaně několik měsíců, jsem řadu grafických karet znovu vyzkoušel, abych si potvrdil, co si pamatuju a co se o nich obecně ví.

Dokonce v rámci snažení vznikl s bratrovou pomocí OpenGL prográmek nazvaný GPUbench, který umožňuje testovat některé parametry grafických karet v různých situacích (prozatímní web s popisem). Díky tomu jsem schopný zjišťovat, jak rychle karta kreslí polygony bez textur i s texturami (včetně náročnosti, když má textura vysoké rozlišení), s poloprůhledností a podobně (pixel fill-rate). Dále měří maximální geometrický výkon (tedy počty trojúhelníků za sekundu; triangle-rate). V dávných dobách primitivnějších grafik byly právě tohle důležité výkonové parametry. Neříkám, že to dá kompletní obraz o kartě – na to jsou potřeba i nějaké reálné aplikační, případně herní benchmarky – ale dává to dobrou představu o hrubém výkonu karty.

Celý ten benchmark vznikl po diskuzi s Vlaskem (vgamuseum.info), kdy jsme řešili, že herní karty jdou snadno změřit pod Direct3D, ale hodně staré profesionální akcelerátory akcelerující jen pod OpenGL mají velmi limitovanou množinu použitelných benchmarků (zejména pak, když jde o kartu bez podpory textur). Žádný z nich nám nevyhovoval pro přesné měření teoretických hodnot pixel fill-rate a triangle-rate, takže došlo k rozhodnutí napsat vlastní.

Nějaký záchvěv megalomantství nakonec způsobil, že jsme získali téměř sto výsledků s 3D akcelerátory od roku 1995 do 2004, primárně z profesionálních karet pod Windows (NT). Pro lepší srovnání s UNIXovými počítači došlo také na portaci pro SGI IRIX a Sun Solaris. Všechny výsledky jsou součástí šílené on-line tabulky s primitivní možností filtrování karet. Koho to zajímá víc, může si stáhnout originální Excelovskou tabulku v archivu projektu (ten je včetně zdrojových kódů, poznámek a detailních výsledků, včetně výpisu OpenGL extenzí každé karty).

Dále bych také doporučil navštívit web vintage3d.org, což je asi nejkompletnější pojednání o prvních generacích herních 3D akcelerátorů včetně testování, srovnání a screenshotů ukazujících všechny nedostatky použitých čipů a ovladačů.

Komentáře k článku

  1. 1. frettie  19.2.2019  11:31:13

    WOW!

    přečetl jsem zatím jen část, ale teda – tohle je naprostá bomba. Ukládám na dlouhý jarní večer.

    FAkt super.

  2. 2. Nox  19.2.2019  16:23:43

    Precteno jednim dechem, diky za super clanek.

  3. 3. Pedro  20.2.2019  14:04:47

    Prekvapivo skoro prisla dalsia cast. Bola hutna, skvele citanie. Vdaka za robotu.

  4. 4. mech13  20.2.2019  15:16:17

    Masakr
    Přečteno jedním dechem. Prostě masakr.

  5. 5. nula  21.2.2019  23:24:16

    Super čtení, díky!

    Zrovna můj O2 byl tedy zastaralý už v době, když byl prodán (rok výroby 1998) :-( Tedy, ne že bych ho pořád ještě nepoužíval. ;-)

  6. 6. swarm  22.2.2019  22:48:15

    [5] To zas netvrdím. Jen, že 3D jádro výkonově po vydání už nedrželo krok s pokrokem trhu. Pokud se nepletu, ty máš verzi s R10000, což v roce 1998 rozhodně nebylo vůbec nic pomalého, co do výpočetního výkonu.

    A pokud jde o 3D, pořád je potřeba vzít v potaz, že jiní výrobci UNIXových stanic klidně dál nabízeli grafiky bez podpory 3D i pořádné akcelerace videa. Takový Sun ještě po roce 2000.

  7. 7. Ronoath  25.2.2019  19:08:23

    Výborná série článků. Díky za ni. Konečně jsem se dozvěděl, co se skrývá pod tajuplnými výrazy Glide, OpenGL a podobné, které jsem vídával v herních magazínech té doby, a pak mě nenapadlo se tím ještě někdy zabývat.

  8. 8. Krtek  27.2.2019  19:11:34

    Taky s povděkem kvituju tuhle sérii. Díky za shrnutí tehdejší doby. Tenkrát jsem jí sledoval ze softwarových novin (už si nepamatuju jejich jméno), PC Wordu a Chipu a čekal jak dopadne souboj CPU – MIPS, Alpha, PARISC, Sparc, PowerPC vs intel… Doba pokročila a já bych chtěl tu dobu vrátit nazpátek. Tehdá byl muj sen taky něco od SGI nebo něco s Alphou ale grafiky jsem prakticky nevnímal. Pro mně byla důležitá doba renderování finální scény procesorem (jo my Amigouni jsme vlastně akceleraci grafiky kartou skoro nepoznali a všechno mi počítala moje 040ka), i když to mi zůstalo do dneška… A bohužel dneska už vlastně neexistuje komp, co by byl mým snem, nebo na který bych musel šetřit a těšit se…. Doba se změnila ale jestli k lepšímu….

  9. 9. Nox  28.2.2019  14:56:09

    8. A co Blackbird s Power9? Na dnesni dobu docela exoticke a setrit na to asi taky nejaky patek budes. Ja mam stejny problem s kapesnima zarizenima, mimo suntu s dvema odpadnima OS se v podstate nic koupit neda.

  10. 10. Krtek  28.2.2019  17:04:27

    Díky za trknutí, to by se mi asi i líbilo. Pro mně jako neprogramátora by ysi byl kapku problém využitelnost. Jestli by na tom běhal muj oblíbenej Sweethome 3D, Imagine nebo Lightwave….
    A drahý je to sice celkem dost ale pořád je to dostupný, je to cena lepšího IPhona…. Kde jsou ty časy, kdy jsem snil o Amize 4000 za snad 100 tisíc a dostal nakonec vybavenou A1200 za asi 60….
    Doufam že IBM Power neopustí a bude se třeba i dál zdostupňovat. Měl jsem Pegasose a to mně z exotů kapku vyléčilo, radši jedu MorphOS na PowerMacku.

  11. 11. swarm  28.2.2019  18:28:13

    [8] Ale tak byla to hezká doba, sám na to rád vzpomínám, ale že bych se nutně vracel, to asi ne. Dneska to má taky něco do sebe, ale bereme honě věcí jako samozřejmost, takže si to ani neuvědomujeme.

    Pokud jde o dnešní počítače, prostě se to posunulo jinam. Něco snového neexistuje možná i proto, že dneska je toho hodně poměrně použitelného a za mrzký peníz. Mně se samozřejmě líbí, že dnes mohu mít velmi rychlý notebook s naprosto minimální hmotností a skvělým displejem, který se obvykle chladí pasivně a vydrží deset hodin na baterku. To tenkrát nešlo ani vzdáleně. Přitom dneska to stojí pod 30 tisíc korun.

    Na tehdejší době bylo krásné sledovat, jak se to všechno pořád ještě teprv rozjíždělo. Začátkem devadesátek byl zájem o počítače pořád poměrně společensky okrajová aktivita přitahující hlavně „podivíny“ :) … a právě to jsem měl rád.

    Blackbird s Power9 tu je a nestojí zas tolik, ale čekat, že to začně být nějak zásadně dostupnější pro mainstream, asi nemá cenu. Tak, jak je ta platforma dnes postavená, patří do cílovky: (1) lidé, kteří chtějí lokálně vyvíjet kód kompatibilní s většími systémy, (2) hračičkové s Linuxem a (3) lidé, kteří chtějí otevřenou architekturu s minimem closed-source driverů/firmwarů.

    Doporučuju ale okouknout wiki pro tu desku. Jsou tam všechny možné troubleshootingy, a když si přečtete, co obnáší jen instalace a konfigurace, pochopíte, proč to je skutečně jen pro znalé. Přívětivostí konfigurace si to nezadá se starými UNIXovými počítači a další problém je velmi limitovaná podpora hardware (už jen co je problémů s grafickými kartami).

    To už má mnohem lépe našlápnuto ARM64, kde došlo k větší standardizaci v serverovém segmentu a už pro to existuje i plnohonotný Windows. Na druhou stranu je otázka, jestli přechodem získá něco uživatel/neprogramátor. Dneska už stejně nejsou žádné čistě RISC a CISC procesory a hodně problémů současného CPU designu je úplně jinde. Když dnes takový uživatel chce něco jiného než x86, dělá to spíš pro pocit.

  12. 12. r443  26.3.2019  20:12:09

    Konečně jsem se dostal k přečtení celého seriálu a klobouk dolů, tolik ucelených informací a navíc ještě v češtině, to se jen tak nevidí. To muselo dát práce.. díky!


Napsat komentář