Silikonowa grafika

Dwudziestego sierpnia minęło dwadzieścia lat od chwili, gdy trzech obywateli Hongkongu – K.Y. Ho, Benny Lau i Lee Lau – założyło w Kanadzie firmę Array Technology Inc., znaną dziś wszystkim pod nazwą ATI. Myślę, że ta rocznica to dobry pretekst, by przypomnieć sobie, jak na przestrzeni lat zmieniały się karty i akceleratory graficzne, montowane w naszych pecetach.

Zaczęło się od liter

Na początku sierpnia 1981 roku wraz z narodzinami IBM-a 5150 – protoplasty dzisiejszych pecetów – światło dzienne ujrzała pierwsza karta graficzna. Urządzenie to, oznaczone symbolem MDA (Monochrome Display Adapter), potrafiło wyświetlić 25 wierszy tekstu po 80 znaków każdy i korzystało z ośmiobitowej szyny ISA. Konstruktorzy IBM-a 5150 niesłusznie założyli, że ich maszyny wykorzystywane będą niemal wyłącznie w biurach. Dlatego też początkowo w ogóle nie przewidzieli opcji wyświetlania grafiki. Szybko okazało się jednak, że komputerami PC interesują się również użytkownicy indywidualni, którzy chcieli grać. IBM naprawił swój błąd i w niecałe dwa miesiące po premierze peceta na rynku pojawiła się pierwsza karta graficzna z prawdziwego zdarzenia – CGA (Color Graphics Adapter).

Pradziadek dzisiejszych akceleratorów wyposażony był w 16-kilobajtowy bufor ramki i oprócz trybów tekstowych, co ciekawe, niezgodnych z MDA, oferował dwa tryby graficzne. W pierwszym z nich był w stanie wyświetlić 320×200 punków przy “zawrotnej” liczbie czterech kolorów wybieranych z dwóch palet. Pierwsza zawierała barwy: białą, czarną, różową i jasnoniebieską, druga zaś kolory żółty, czarny, zielony i czerwony. Karty CGA oferowały też tryb wysokiej rozdzielczości 640×200 punktów, wykorzystujący dwa kolory – czarny i biały.

Od Herculesa do SVGA

Osoby, które swoją przygodę z komputerami PC zaczynały w końcu lat 80., dobrze pamiętają montowane wówczas karty graficzne HGC (Hercules Graphics Controller), określane, od nazwy firmy, która opracowała ten standard, “Herkulesami”. Swój przełomowy produkt Hercules zaprezentował w 1982 roku. Wszystkie klony Herculesa były w stanie pracować w monochromatycznym trybie 720×348 punktów, a dzięki specjalnym programowym emulatorom udawały też CGA. Oczywiście nie było wówczas mowy o kolorach, niemniej gry napisane na CGA działały na Herculesach bardzo dobrze.

Popularności standardowi HGC nie odebrała ani na chwilę opracowana w 1984 roku przez IBM-a karta EGA (Enhanced Graphics Adapter). Była ona zgodna z CGA i MDA, ale do swojej pracy wymagała specjalnego, drogiego monitora. Wprowadzono w niej dwa nowe tryby graficzne – 320×200 i 640×350 pikseli, mogące wyświetlać jednocześnie 16 barw wybranych z 64-kolorowej palety. Prawdziwym przełomem w komputerowej grafice okazał się opracowany w 1987 roku w laboratoriach IBM-a standard VGA (Video Graphics Array). Karty VGA oprócz sprzętowej zgodności z MDA, CGA i EGA (ale nie z Herculesem) oferowały dwa nowe tryby pracy – 320×200 pikseli przy 256 kolorach i 640×480 punktów wyświetlający 16 kolorów. To tę ostatnią rozdzielczość obsługiwał do niedawna niemal każdy system operacyjny. Karty VGA wyposażone też były w zawrotną jak na owe czasy 256-kilobajtową pamięć wideo.

VGA dość szybko uznano za obowiązujący standard, a producenci kart graficznych rozpoczęli wyścig o to, kto więcej z karty wyciśnie pikseli i kolorów. Na rynku pojawiały się niekompatybilne ze sobą konstrukcje, określane wspólnym mianem SVGA (Super VGA), oferujące tryby 800×600, 1024×768, a nawet 1280×1024 punkty i pracujące z 16, 256 bądź 16 384 barwami. By uporządkować rynek, najwięksi producenci monitorów i kart graficznych powołali organizację VESA (Video Electronics Standards Association), która od 1989 roku odpowiada za standaryzację wszystkich graficznych trybów pracy, definiując rozdzielczości i dostępne kolory.

Akceleratory i złącza

Wszystkie opisane dotąd karty graficzne to tzw. bufory ramki – wyświetlały one na ekranie monitora punkty o określonych przez procesor współrzędnych. Pierwszym akceleratorem był IBM 8514/A z 1988 roku, który sprzętowo przyspieszał rysowanie prostokątów, linii o zadanym punkcie początkowym i końcowym oraz wypełnianie obszarów zamkniętych. Sprzętowa realizacja tych operacji stała się niezbędna do przyspieszenia działania graficznych systemów operacyjnych, takich jak opracowywane wówczas Microsoft Windows i IBM OS/2.

Za przykładem IBM-a poszli inni producenci kości i kart graficznych. Na przełomie lat 80. i 90. pojawiło się mnóstwo układów wspomagających wyświetlanie grafiki 2D. W ich produkcji przodowała firma S3. Wiele osób z pewnością pamięta jej akceleratory z serii Vision 868 i Vision 968 oraz późniejsze Trio32 i Trio64. Wśród udanych konstrukcji z pierwszej połowy lat 90. wymienić należy kości ATI Mach32 z 1992 roku, dwa lata młodszą ATI Mach64 oraz bardzo popularne w Polsce konstrukcje bazujące na chipie Trident TGUI 9680.

Wraz z rozwojem kart graficznych zmieniała się również używana przez nie magistrala. Początkowo wykorzystywano ośmiobitowe złącze ISA, które szybko okazało się niewystarczające. Karty zaczęto więc montować w 16-bitowej wersji tego slotu, a wraz z pojawieniem się procesorów 486, w 32-bitowym gnieździe VESA Local Bus (VLB). Ta ostatnia magistrala była “przedłużeniem” wyprowadzeń procesora, co przyspieszało generowanie grafiki, ale też zmniejszało elastyczność konstrukcji peceta. Z pierwszymi procesorami Pentium pojawiła się szybka jak na owe czasy magistrala PCI o przepustowości 132 MB/s – to właśnie z jej potencjału zaczęły korzystać pierwsze akceleratory 3D.

Najważniejsze wydarzenia w historii rozwoju pecetowej grafiki, kart i układów graficznych
MiesiącWydarzenie
Rok 1981
SierpieńIBM 5150 – pierwszy komputer PC
SierpieńMDA (Monochrome Display Adapter) – pierwsza karta dla PC – 25 wierszy x 80 znaków
PaździernikCGA (Color Graphics Adapter) – czterokolorowa karta dla PC
Rok 1982
SierpieńHGC (Hercules Graphics Controller) – monochromatyczna karta Hercules staje się standardem dla maszyn PC – 720×348 pikseli
Rok 1984
SierpieńEGA (Enhanced Graphics Adapter) – 640×350 pikseli, 16 kolorów
16-bitowa magistrala ISA (15,9 MB/s)
Rok 1985
SierpieńPowstaje firma Array Technology Inc. (ATI)
Rok 1987
KwiecieńVGA (Video Graphics Array) – tryby 640×480 pikseli (16 kolorów), 320×200 pikseli (256 kolorów)
Rok 1988
KwiecieńIBM 8514/A – pierwszy akcelerator 2D
Rok 1989
KwiecieńPowstaje organizacja standaryzująca wyświetlanie grafiki – VESA (Video Electronics Standards Association)
Powstaje firma S3
Rok 1990
MajPremiera Windows 3.0
Rok 1991
KwiecieńPremiera Windows 3.1
Rok 1992
MarzecFirma SGI zakłada zrzeszenie promujące standard OpenGL
CzerwiecMagistrala VESA Local Bus (127,2 MB/s)
CzerwiecMagistrala PCI (127,2 MB/s)
Rok 1993
StyczeńPowstaje firma Nvidia
Rok 1994
Powstaje firma 3dfx
GrudzieńMatrox MGA-2064W – pierwszy akcelerator 3D
Rok 1995
Powstaje standard PCI rev. 2.1
MajPremiera układu Nvidia NV1 – pierwszego akceleratora 3D do gier
SierpieńPremiera Windows 95
PaździernikPremiera układu 3Dlabs Permedia – pierwszej profesjonalnej kości 3D na rynek domowy
PaździernikS3 ViRGE – pierwszy tani akcelerator 3D do gier
Listopad GrudzieńMicrosoft wprowadza funkcje 3D do DirectX (DirectX 1.0)
ListopadATI Rage3D – pierwszy układ 3D firmy ATI
Rok 1996
LipiecPremiera bibliotek DirectX 3.0
Sierpień3dfx Voodoo – protoplasta dzisiejszych akceleratorów 3D
WrzesieńPremiera układu Rage3D II – pierwszy układ 3D ze wspomaganiem odtwarzania DVD
Rok 1997
Magistrala AGP (AGP – 254,3 MB/s, AGP 2x – 508,6 MB/s, AGP 4x – 1017,2 MB/s, AGP 8x – 2132 MB/s)
KwiecieńPremiera układu Nvidia Riva 128 – pierwszego 128-bitowego akceleratora 3D
Maj3Dlabs Permedia II
PaździernikPremiera bibliotek DirectX 5.0
Listopad3dfx Voodoo 2 – układ pozwalający na pracę w tybie SLI
ListopadS3 Trio3D
Rok 1998
LutyVideoLogic PowerVR – pierwszy układ z renderingiem kafelkowym
LutyIntel i740 – pierwszy układ 3D Intela
MarzecNvidia RivaTNT – układ mapujący jednocześnie dwie tekstury
KwiecieńMatrox G100/G200 – 32-bitowa paleta kolorów w trybie 3D
MajS3 Savage 3D
Czerwiec3Dfx Voodoo Banshee
CzerwiecPremiera Windows 98
SierpieńATI 3D Rage 128 – 128-bitowy układ ATI
ListopadPremiera bibliotek DirectX 6.0
Rok 1999
LutyS3 Savage 4 – pierwsza implementacja w akceleratorze 3D niektórych funkcji T&L
MajPremiera Windows 98 SE
LipiecPremiera bibliotek DirectX 6.1
SierpieńNvidia GeForce 256 – układ z wydzielonym modułem T&L
SierpieńS3 Savage 2000 – poprawiona wersja Savage 4
GrudzieńPremiera bibliotek DirectX 7.0
Rok 2000
LutyPremiera Windows 2000
KwiecieńNvidia GeForce2
KwiecieńATI Radeon 256 – pierwsza kość ATI z T&L
LipiecPremiera bibliotek DirectX 7.1
CzerwiecSTMicroelectronics Kyro – układ z renderingiem kafelkowym
ListopadPremiera bibliotek DirectX 8.0
GrudzieńNvidia przejmuje firmę 3dfx
Rok 2001
LutyNvidia GeForce3 – obsługa Pixel i Vertex Shaderów (pierwszy GPU)
MarzecPremiera układów graficznych Nvidii do Xboksa
SierpieńATI Radeon 8500 – pierwszy układ zgodny z DirectX 8.1
PaździernikPremiera Windows XP
ListopadPremiera bibliotek DirectX 8.1
Rok 2002
LutyNvidia GeForce4 – układ zgodny z DX 8.1
MajMatrox Parhelia-512 – pierwsza karta z technologią Displacement Bump Mapping
LipiecATI Radeon 9500 – pierwsza karta zgodna z DirectX 9.0
ListopadNvidia GeForce FX – układ zgodny z DX 9.0
GrudzieńPremiera bibliotek DirectX 9.0
Rok 2004
Magistrala PCI Express x16 (4000 MB/s)
KwiecieńNvidia 6800 Ultra – pierwsza kość zgodna z Shader Model 3.0
MajATI Radeon X800
SierpieńPremiera bibliotek DirectX 9.0c
Rok 2005
MajATI Xenos (Xbox 360)
MajNvidia RSX (PlayStation 3)
CzerwiecNvidia GeForce 7800 GTX
PaździernikATI Radeon X1800
Więcej:bezcatnews