Već smo i prije izlaska ATI-jeve serije X1800 slušali glasine o nasljedniku arhitekture koji bi trebao pomesti sva konkurentska rješenja. nVidijin odgovor na najjače modele X1800 serije, GeForce 7800 GTX 512, dao je ATI-ju još jedan dobar razlog da se požuri s predstavljanjem još novijih i bržih kartica. Kanadski je proizvođač to prije nekoliko dana i učinio, plasirajući na tržište kartice bazirane na čipovima razvijanim pod kodnim imenom R580 odnosno produkcijskim imenom X1900.

Novi je čip proizveden u jednakim pogonim i jednakom tehnologijom kao i njegov prethodnik – u tajvanskom TSMC-u, 90-nanometarskim procesom pod imenom Nexsys. Premda je osnovna arhitektura ostala je jednak u odnosu na R520, uvelike proširen je broj pixel shaderskih procesora pa ih R580 u odnosu na stariji čip ima čak tri puta više – 48 naprema 16. Unatoč proširenju broja jedinica odgovornih za matematičke operacije, nije se povećala količina jedinica za adresiranje tekstura, niti količina vertex shaderskih jedinica.

Shematski dijagram čipa R580 (pojednostavljen)

Konkretno, ovo znači da je ATI poprilično povećao matematičke mogućnosti čipa, računajući na to da će se u budućnosti pojaviti mnogo naslova koji će moći iskoristiti punu snagu njegovih pixel shaderskih procesora. Omjer pixel shaderskih jedinica u odnosu na one teksturne na R580 iznosi 3:1, što je mnogo drugačiji omjer od onog u čipu R520, gdje je broj pixel shaderskih procesora i teksturnih jedinica jednak. ATI ovo objašnjava činjenicom da mogućnosti samog grafičkog procesora rastu mnogo brže od brzine memorije. S obzirom da su jedinice za teksturiranje ponajviše ovisne o mogućnostima memorijskog podsistema, ATI kaže da nema smisla dodavati nove teksturne jednice, ako im nije moguće ponuditi i adekvatno brzu memoriju. Uz to, prema ATI-jevim analizama, trenutni i nadolazeći naslovi se mnogo više oslanjaju na aritmetičke shaderske operacije nego na shaderske operacije s teksturama, pa je stoga u moderan grafički procesor fokusirati na aritmetičke, a ne teksturne operacije. Dodatno iskorištavanje pixel shaderskih jedinica moguće je ostvariti proceduralnim teskturiranjem odnosno korištenjem aritmetičkih jedinica za generiranja tekstura na bazi vanjskih parametara.

Sličnu arhitekturu ima i Radeon X1600 odnosno čip R530, u kojem se nalazi 12 pixel shaderskih cjevovoda unutar samo jednog klasičnog "quada", te četiri teksturne jednice koje opslužuju svih 12 cjevovoda. Valja napomenuti kako ni kod R580, ni kod R530, ne možemo govoriti o klasičnim cjevovodima budući da se pod klasičnim cjevovodom podrazumijeva pixel shaderski cjevovod s vlastitiom teksturnom jedinicom. Uz to, u klasičnom cjevovodu pikseli se obrađuju po principu FIFO (First In First Out), dok na R580 i R530 (zapravo, na svim čipovima iz serije R5xx), pikseli mogu biti "izvađeni" iz cjevovoda, relevantne vrijednosti spremljene u registar, a cjevovod uporabljen za obradu nekog drugog piksela.

Arhitektura ALU-a za obradu piksela ostala je jednaka u odnosu na R520

Kad smo već kod "švrljanja" piksela po čipu, moramo se pozabaviti i mogućnostima thread dispatch procesora koji je odgovoran za avanture veselih piksela. Premda bi temeljitiji čitatelji po priloženom shematskom prikazu arhitekture R580 mogli zaključiti da R580 ima 12 thread dispatch procesora, to nije istina (shema čipa je dosta pojednostavljena) – i dalje su ih četiri, kao na R520. To znači da je unatoč trostrukom povećanju aritmetičkih jedinica, broj maksimalnih threadova i dalje ograničen na 512, odnosno 128 po thread dispatch procesoru. S obzirom da je pojedini dispatch procesor vezan uz po tri quada (12 pixel shaderskih procesora), čineći tako jednu pixel procesorsku jezgru, jasno je da je najmanja razina granularnosti pixel shaderskih procesora 12. Tako je recimo Radeon X1600 baziran na samo jednoj ovakvoj pixel procesorskoj jezgi.

Prije nego što se pozabavimo zadnjim bitnim novim featurom čipa R580, metodom Fetch4, valja spomenuti još jednu brojku – dvostruko povećanje cache memorije namijenjene računanju hirerahijskog Z-a. Dodatna memorija je tu, kaže ATI, da bi se povećale performanse u super-visokim rezolucijama (1920×1200, 2048×1536, 2560×1600) kojima se korisnici sve više služi. S obzirom na cijenu monitora koji mogu podržati ovakve rezolucije, vjerojujemo da mnogim korisnicima ovaj feature neće biti toliko koristan koliko ATI pretpostavlja.

Shematski prikaz metode Fetch4

Posljednja novost novog čipa je implementacija tehnike dohvata sampleova jednokanalnih tekstura pod imenom Fetch4. Dohvat sampleova za filtriranje preko standarnih DirectX rutina zahtijeva dohvaćanje četvekomponente vrijednosti (R, G, B kanal i Alpha kanal odnosno prozirnost) nekoliko puta te izračun potrebnih informacija preko pixel shadera korištenjem vrijednosti dobivenih dohvatom. Jedna od čestih primjena ovakvog algoritma je sjenčanje metodom shadow mappinga gdje je rubovi sjenki bez filitriranja izgledaju grubo, nerealno u odnosu na pravu stvar. Meke sjenke (famozni Soft Shadows) u većini se slučajeva dobijaju filtriranjem shadow mape gdje u igru ulozi Fetch4. Umjesto da se radi klasični dohvat četverokanalnog samplea i tako više puta, Fetch4 u jednom prolazu dohvaća sve četiri vrijednosti budući da "zna" da radi s jednokanalnom teksturom – shadow mapom. U mjesta predviđena za R, G, B i A vrijednosti spremaju se vrijednosti sva četiri dohvaćena jednokanalna teksela te ih se u jednom prolazu isporučuje pixel shaderima na obradu.

Ono što je zanimljivo u cijeloj priči je to što nVidijin hardver već duže vrijeme podržava metodu pod imenom PCF (Percentage Closer Filtering) koja mnogo efikasnije odrađuje cijelu stvar. PCF je originalno maslo Silicon Graphicsa, a nVidija je jednim prilično starim ugovorom dobila mogućnost upotrebljavati ga tako da je PCF metoda korištena i na vrlo starim rješenjima ove firme, kao što je npr. grafički procesor u originalnom XBoxu. S obzirom da je PCF pod licencom, ostali ga proizvođači grafičkih procesora, a između ostalih i ATI, nisu smjeli koristiti u svojim rješenjima. PCF također dohvaća četiri texela istovremeno iz jednokanalne teksture, no za dobijanje filtrirane vrijednosti nije potrebno rabiti pixel shadere – sve se računanje odvija već u sampleru tekstura. Za svaki se teksel računa binarna vrijednost (1 ako je teksel u sjeni, 0 ako nije) te se iz četiri ovakve vrijednosti računa postotni gradijent sjenčenja (0, 0.25, 0.5, 0.75 i 1.0). Ako su potrebni finiji gradijenti, sampliranje se jednostavno radi više puta.

Premda Fetch4 i PCF služi za jednake stvari, pri kodiranju se ove metode ne implementiraju jednako tako bez dodatnog truda programera Fetch4 neće rezultirati ubrzanjem performansi (s obzirom na starost PCF metode, pretpostavljamo da je ona već implementirana u gotovo svim igrama koje bi je mogle iskorištavati).

Sve u svemu, Fetch4 je zgodna metoda s kojom je ATI ponovo izmislio "toplu vodu". Premda je ovako nešto bilo nužno s obzirom da nemaju licencu na PCF, tek treba vidjeti koliko će programeri Fetch4 zaista rabiti.