Graficzne abecadło

Na pierwszy rzut oka postęp w technologii kart graficznych wydaje się oszałamiający. Po bliższych oględzinach okazuje się, że dość często nowe modele tworzone są nieco na siłę, ale w ciągu mijającego roku pojawiło się kilka przełomowych rozwiązań.

Na pierwszy rzut oka postęp w technologii kart graficznych wydaje się oszałamiający. Po bliższych oględzinach okazuje się, że dość często nowe modele tworzone są nieco na siłę, ale w ciągu mijającego roku pojawiło się kilka przełomowych rozwiązań.

Radeon 9700 to w tej chwili najbardziej zaawansowany i najbardziej wydajny układ graficzny na Ziemi. Upokorzył największego konkurenta - GeForce4 Ti 4600.

Radeon 9700 to w tej chwili najbardziej zaawansowany i najbardziej wydajny układ graficzny na Ziemi. Upokorzył największego konkurenta - GeForce4 Ti 4600.

Co ważne, w tym roku po raz pierwszy od dawna aż trzech producentów spierało się na poziomie technologii i rozwiązań konstrukcyjnych. Firmy ATI, Matrox i NVIDIA przedstawiły nowe modele układów i kart, które - co ważne - mogą być równorzędnymi rywalami mimo zdecydowanych różnic projektowych. W tym trio NVIDIA to brutalna siła, Matrox to finezja, ATI zaś próbuje - całkiem skutecznie - połączyć obydwie strategie.

Najbardziej spektakularny postęp dotyczy oczywiście funkcji 3D, zwiększających wydajność i realizm grafiki trójwymiarowej. Przy okazji przekonać się można, jak bardzo rozwój sprzętu wyprzedził rozwój oprogramowania. Najnowszy układ ATI Radeon 9700, wprowadzony do sprzedaży w połowie roku, obsługuje już sprzętowo mechanizmy, które pojawią się w nieopublikowanym jeszcze DirectX 9.0. Ta najnowsza wersja interfejsu programistycznego pojawi się zapewne dopiero pod sam koniec 2002 roku.

Wspomniany ATI Radeon 9700 jest w ogóle zdecydowanie najciekawszym rozwiązaniem, jakie pojawiło się w roku 2002 (choć to stwierdzenie nieco ryzykowne, ponieważ NVIDIA może jeszcze zaprezentować publicznie najnowsze układy). Dlatego też, chcąc zaprezentować technologie kart graficznych i obowiązujących trendów, skupimy się przez pewien czas na tym właśnie układzie.

Finezyjna architektura i czysta siła

Wspomnieliśmy już, że najnowszy układ ATI jest w pełni zgodny z DirectX 9.0. Aby uzyskać taką zgodność, trzeba spełnić jeden podstawowy warunek - cały potok renderujący musi operować na liczbach zmiennoprzecinkowych. Dotychczas znane układy pracowały tylko na liczbach całkowitych. Wprowadzenie liczb zmiennoprzecinkowych wymusiło nieprawdopodobne zwiększenie liczby tranzystorów - jest ich teraz ponad 100 milionów, czyli więcej niż u dotychczasowego rekordzisty - Matroksa Parhelii (80 milionów). Mniej tranzystorów ma nawet najnowszy procesor AMD - ClawHammer. Oczywiście trzeba było w związku z tym zastosować zupełnie nową obudowę układu. Wybrano technologię FCBGA, znaną chociażby z procesorów Pentium III.

Oczywiście liczba tranzystorów sama w sobie nic nie oznacza. Co zatem naprawdę nowego, oprócz operacji na liczbach zmiennoprzecinkowych, wnosi Radeon 9700?

Warto przyjrzeć się uważnie kontrolerowi pamięci. Jak wiadomo, przepustowość pamięci jest od dawna wąskim gardłem kart graficznych. To właśnie ograniczenia w transferze danych sprawiają, że układy graficzne takie jak GeForce4 nigdy nie osiągają swojej teoretycznej wydajności.

Radeon 9700 jest drugim w historii układem (po Parhelii), w którym zastosowano 256-bitowy kontroler pamięci. Składa się z 4 kontrolerów 64-bitowych, połączonych krzyżowo. Tak szeroka szyna danych sprawia, że przy standardowym taktowaniu pamięci 310 MHz przepustowość pamięci osiąga aż 18,5 GB/s, czyli prawie dwa razy więcej niż w GeForce4 Ti 4600. Sugeruje to, że karta będzie osiągać wysokie wyniki w wielu grach wymagających dużej przepustowości pamięci, czyli w prawie wszystkich najnowszych tytułach. Tak jest w istocie, co pokazują przeprowadzone przez nas testy. Co ważne, zastosowany kontroler jest przystosowany do współpracy z pamięciami DDR-II. Gdy pamięci te staną się powszechnie dostępne i producenci kart postanowią je wykorzystać, wówczas ta najlepsza pod względem przepustowości karta jeszcze bardziej ucieknie konkurentom.

Tak szeroka szyna danych spowodowała jednak pewne trudności natury konstrukcyjnej. Aby wyprowadzić wszystkie sygnały, układ wykorzystuje ponad 1000 nóżek, podczas gdy np. Pentium 4 tylko 478. Co prawda, znaczna część spośród tego tysiąca dostarcza napięcie do wyjątkowo prądożernego układu. Warto bowiem zaznaczyć, że wszystkie karty z Radeonem 9700 wymagają dodatkowego zasilania, podłączanego tak samo, jak np. do twardego dysku. Jeśli go nie podłączymy, na ekranie monitora podczas startu komputera zobaczymy jedynie lakoniczny komunikat o braku wymaganego zasilania.

Tworzenie obrazu

Krzyżowy kontroler pamięci ATI o szerokości 256 bitów zapewnia podczas standardowego taktowania 310 MHz przepustowość 18,5 GB/s - prawie dwa razy więcej niż kontroler na kartach GeForce4 Ti 4600.

Krzyżowy kontroler pamięci ATI o szerokości 256 bitów zapewnia podczas standardowego taktowania 310 MHz przepustowość 18,5 GB/s - prawie dwa razy więcej niż kontroler na kartach GeForce4 Ti 4600.

Aby karta graficzna w ogóle mogła się zająć wyświetlaniem obrazu, trzeba najpierw dostarczyć do niej odpowiednie dane. Są one przesyłane za pośrednictwem magistrali AGP. Radeon 9700 to drugi w historii układ przystosowany do magistrali AGP 8X. Przy taktowaniu 66 MHz i szerokości szyny 32 bity oznacza to, że można przesłać przez AGP maksymalnie 2,1 GB/s. Wprawdzie wzrost wydajności wynikający z zastosowania szybszego interfejsu nie jest dzisiaj oczywisty, ale to na pewno dobre zabezpieczenie inwestycji na przyszłość. Układ może natomiast bez problemu współpracować ze wszystkimi starszymi płytami głównymi, które obsługują tylko AGP 4X.

Dane są dostarczane do układu graficznego w postaci wielokątów, zapisanych jako zestawy wierzchołków. W tym momencie zaczyna się prawdziwa praca - następują transformacje wierzchołków. Transformacje to m.in. takie operacje, jak przemieszczanie, obracanie, skalowanie. Sprowadzają się do wyjątkowo żmudnych obliczeń, jednak układy takie jak Radeon 9700 wyposażone są w mechanizmy pozwalające wykonywać bardzo zaawansowane działania na tym etapie budowania sceny 3D. Chodzi o możliwość przypisania do każdego wierzchołka krótkiego programu, który będzie kontrolował jego zachowanie. Taka programowalność pozwala na realizację wielu zaawansowanych efektów graficznych, zmieniających wygląd lub zachowanie wierzchołków. Dzięki temu możliwe jest tworzenie tak skomplikowanych obiektów, jak realistycznie wyglądająca trawa lub futro. Radeon 9700 wyposażony jest w cztery potoki realizujące cieniowanie wierzchołków.

Oczywiście Radeon 9700 nie jest pierwszą kartą wyposażoną w programowalny układ cieniowania wierzchołków (vertex shader). Wcześniej ta technologia pojawiła się już w GeForce4 (ale nie w wersji MX) i w Parhelii. Jednak Radeon 9700 wprowadza w tym zakresie kilka istotnych ulepszeń. Jest np. zgodny ze standardem Vertex Shader 2.0. Oznacza to, że przede wszystkim można wreszcie wykorzystać instrukcje warunkowe: skoki, pętle i podprogramy. Pozwala to nieprawdopodobnie zmniejszyć rozmiary kodu niezbędnego do realizacji niektórych zadań. Łatwo sobie wyobrazić, że zapisanie powtarzającej się operacji w postaci pętli może zająć tylko dwa lub trzy wiersze kodu, podczas gdy ta sama operacja bez instrukcji warunkowych będzie musiała zostać zapisana tyle razy, ile przewiduje się powtórzeń.

Vertex Shader 2.0 zwiększa też do 1024 liczbę instrukcji, które mogą być wykonane podczas jednego cyklu przetwarzania.

Po przetworzeniu przez układ cieniowania wierzchołków dane trafiają do jednostki ustawiania trójkątów. W przypadku Radeona 9700 osiąga ona wydajność rzędu 300 milionów trójkątów/s, czyli mniej więcej dwa razy tyle, co w przypadku układu GeForce4 Ti 4600. Biorąc pod uwagę, że Radeon ma o dwa potoki cieniowania wierzchołków więcej niż GeForce4, konieczność zastosowania bardziej wydajnej jednostki ustawiania trójkątów wydaje się oczywista. Okazuje się jednak, że różnie z tym bywa. Matrox Parhelia jest porównywalny do Radeona 9700 pod względem cieniowania wierzchołków, jednak wydajność układu Matroksa na następnym etapie, czyli właśnie podczas ustawiania wierzchołków, jest bardzo niska, co negatywnie wpływa na ogólną wydajność.

Następnym etapem tworzenia sceny 3D jest cieniowanie pikseli (pixel shader). Także w tym zakresie Radeon 9700 wyprzedza konkurentów. Przypomnijmy - GeForce4 (podobnie jak starszy Radeon 8500) wykorzystuje cztery 64-bitowe potoki renderowania pikseli. Łatwo sobie wyobrazić, jak wielkiego skoku dokonało ATI, wprowadzając w najnowszym produkcie osiem 128-bitowych potoków. Każdy z nich zawiera jedną jednostkę mapującą tekstury i stanowi poniekąd niezależną całość, ponieważ jest w stanie zrealizować pełny proces obróbki tekstur, łącznie z ich wygładzaniem czy zamgleniem.


Zobacz również