R600 pod drobnohľadom

Custom Filter Antialiasing

Custom Filter AA alebo v skratke CFAA je non box filter riešenie od AMD/ATi. Pozerá aj von z pixelov, ktoré sú spracovávané pre výpočet finálnej farby a uskutočnenie antialiasingu na obraze. Sample resolve je vykonávaný shader core-om. Čiže dáta sa dostávajú do programovateľného hardwaru, ktorý vykonáva výpočty s filter funkciou definovanou ovládačom. Z toho vyplýva, že AMD/ATi by mohla implementovať do ovládača plug-in systém, pomocou ktorého by si užívateľ sám definoval AA. Takisto ale môže AMD/ATi hocikedy vykonať update a pridať, alebo odobrať filtre z ovládača, pokiaľ to uznajú za nutné.

Najväčšia výhoda je schopnosť vyhotoviť lepší filter ako so štandardným hardware resolve. Je tu ale aj rad nevýhod. Napríklad implementácia zlých filtrov a z toho vyplývajúca strata výkonu, nakoľko ovládač prikáže a hardware vykoná thready pre výpočet resolve, čo pohltí určité takty shader core. Naskytuje sa preto otázka, či je tu stále možnosť štandardného sample resolve, pokiaľ chceme maximálny výkon a bežnú kvalitu pri samplingu jedného pixelu. Nie, táto možnosť tu nie je vždy.

Aj pre základný box filter, kde sa váha jednotlivým samplom udáva podľa príbuznosti k stredu pixelu, vykonáva R600 sample resolve výpočty v shader core, ale iba ak je kompresia pre tile maximálna. Nakoľko je jasné, že resolve by vrátil v každom prípade rovnakú farbu, čiže nie je nutné nič matematicky komplikované filtrovať. Momentálne je ale výmena k hardware resolve pravdepodobne tiež chybná, prinajmenšom v určitých podmienkach – keď nie je kompresia maximálna, alebo je nutné vykonať úpravy priamo v kóde, nakoľko sa implementujú pri programovaní aj iné filtre. V grafickom ovládači máte teda len 1 cestu pre resolve. Prikláňame sa ale skôr k prvej možnosti, nakoľko je prepad výkonu R600 pri shader core resolve príliš veľký a takisto pri použití box filtrov. Určité zlepšenie by sa mohlo dosiahnuť ešte novými ovládačmi. Hardware tu už tak či tak do určitej miery pomáha, nakoľko je schopný dekomprimovať sample pozície pre pixely do shader core pri vysokej rýchlosti.

Momentálne sú dostupné wide a narrow tent filtre, kde sample mimo spracovávaného pixelu dostávajú váhu lineárne závislú od vzdialenosti k stredu tohoto pixelu. Na základe spôsobu vyhladzovania tent filtrov je teda jasné, že sa celý obraz mierne rozostrí, nakoľko dostane časť samplov susediacich pixelov príliš vysokú váhu. Blur efekt je ale oveľa menší ako pri riešení „Quincunx“ od nVidie z pred pár rokov. Rozdiel medzi tent filtrami je, že wide tent zahrnie viac subpixelov susediacich pixelov ako narrow tent. Teda wide tent filter spôsobí trochu silnejší blur.

Okrem toho je od Catalystu 7.7 dostupný štandardne aj edge detect mód. (Poznámka: my sme museli pre testovanie kvality EDCFAA použiť ešte beta ovládače a špeciálnu utilitku, ktorá nám túto možnosť sprístupnila) Edge detect na rozdiel od wide/narrow tent filtrov aplikuje blur (rozostrenie) len cielene, kde je to potrebné. Najprv vyhľadá na celom obraze hrany polygonov. Toto je uskutočnené vďaka tomu, že využije charakteristiky multisamplingu. Po jednom pixely sa celý obraz cez ROPs nahrá do shaderov. Tie potom porovnajú farebné informácie subpixelov. Je subpixel farba samplov na pixel rovnaká, tak sa nejedná o hranu polygonov a CFAA sa tu nevykoná. Pokiaľ sa ale farebné hodnoty rozlišujú, použije sa CFAA. Prepad výkonu s edge detect módom ale nie je zanedbateľný, nakoľko spotrebuje shader core/ROPs výkon a potrebuje určité množstvo priepustnosti.

CFAA nie je možné použiť na starších Radeon grafických kartách, nakoľko nemajú ich ROPs schopnosť posielať sample do shader core. Okrem toho funguje CFAA jedine pod Direct3D, avšak so všetkými AA modmi a render technikami ako HDR-R, stencil tiene atď.

Spojením 3 filtrov a rôzneho množstva samplov možno dosiahnuť veľké množstvo CFAA modov. AMD/ATi využíva nasledovnú nomenklatúru pre označenie modov:
 

Custom filter antialiasing:

4x
2xMSAA + Narrow Tent
6x2xMSAA + Wide Tent alebo 4xMSAA Narrow Tent
8x4xMSAA + Wide Tent
12x8xMSAA + Narrow Tent alebo 4xMSAA + Edge Detect
16x8xMSAA + Wide Tent
24x8xMSAA + Edge Detect

Ako vidieť v tabuľke, dva CFAA mody sa dajú dosiahnuť dvoma rôznymi kombináciami použitých samplov a filtrov využitých pre resolve. Číslo označújúce mod predstavuje celkový počet samplov s ktorými pracoval filter. Avšak tieto dva mody nemajú zhodnú kvalitu obrazu (nakoľko sa dajú použiť 2 filtre pre dosiahnutie potrebného početu samplov). Z toho vyplýva, že nemožno použiť čisto len číslo označujúce CFAA mod, pre zistenie, či poskytuje lepšiu alebo horšiu kvalitu vyhladzovania ako iný CFAA mod s vyšším alebo nižším číslom. Takisto nemožno len podľa veľkosti čísla určit stratu výkonu pri zapnutí daného CFAA modu.

Aktuálne nie je isté, či sa vôbec integruje do ovládačov pug-in systém, vďaka ktorému by si užívateľ definoval vlastné filtre. Nie je ani isté, či AMD/ATi počas života R600 pridá alebo odoberie filtre (pravdupovediac, nie sú si tým istý ani pracovníci AMD/ATi, nakoľko sú tieto funkcie ovládača veľmi „mladé“). Nasledujú benchmark výsledky.


Komentáre (18)
subz3ro
Good work, cruxo. Opäť sa ukazuje, kto je u nás odborníkom v oblasti technológií grafických kariet :)
gabriel
Tak musim pochvalit -> clanok je po stranke obsahovej fantasticky na svoje si pridu urcite vsetci ako bezni tak aj velmi narocni citatelia. Co je vsak este lepsie je forma akou je clanok pisany -> tentokrat je to resp. to precita aj bezny clovek.
epto
fiha. riadne dlhy clanok. aj ked musim sa priznat, mne obycajnemu cloveku vela pojmov nic nehovorilo. nemozem povedat, ze som v oblasti PC "lama". PC pouzivam uz roky, zhruba 15-20 som ich uz aj poskladal. ale moj zaujem o vykonnu graficku kartu uz nie je na prvom mieste nakolko PC vyuzivam hlavne na pracu. tymto nechcem clanok kritizovat, len ze som niektore casti rovno preskocil a precital az vyhodnotenie.
Pavol Bobik
Ano, dobra recenzia, klobu dole :)
MichiGen
Naozaj skvely rozbor, myslim ze vsetko dolezite sa podarilo v tejto recenzii obsiahnut :)
koro
good job
Ryko
Tak musim zatlieskat cruxovi... uz davno som necital tak kvalitne spracovyn clanok v oblasti graf.kariet... absoutne vycerpavajuce informacie o zlozeni a fungovani chipu... imho by to mozno chcelo vysvetlit niektore odborne pojmy, aby bol clanok pristupnejsi pre sirsie spektrum ludi... lae zas takych clankov je na nete dost... este raz vdaka za squele citanie...
glide
proste perfektne
thimy
Nebolo by odveci opravit: 12 - Custom Filter AntiAlaising Premysliet zakladnu myslienku, spracovat podklady a vôbec napisat takyto clanok muselo zabrat kopu casu. fakt respect
A2C
Klaniam sa
noben
....asi nepoviem nič, lebo mám stále otvorené ústa a oči vyplešťené na monitore....
cpy
Musim uznat tak dobre a vystizne zrobenu recenziu som este necital (alebo si nepamatam zeby som taku cital) Tie videa na porovnanie su fakt vybornym doplnkom recenzie.
teho
vrela vdaka za super clanok na slovenskom nete nevidaneee.
Dwarden
clanek pekny, ale skoda tech starych ovladacu, bylo by fajn otestovat znovu s nadchazejicim ovladaci 7.8 (uz RC3 ukazuje znacne zlepseni ve vykonu 2xxx serie pri pouziti AA, take je tu novy AA mod k dispozici od ovladacu 7.7)
crux2005
Žiaľ, potom by sa dalo čakať v podstate donekonečna. Samozrejme na prepad výkon s AA a novými ovládačmi sa v blízkej budúcnosti pozrieme ;-) "take je tu novy AA mod k dispozici od ovladacu 7.7" Aký nový AA mod máte na mysli ?
mirke
Tak konecne som si nasiel cas to precitat a musim uznat, ze z mojho pohladu sa jedna o kvalitnu a rozsiahlu recenziu, ktora pokial viem nema na nete obdoby. Patri ti velka poklona odo mna. Inac velmi rad som pomohol, mozno aj nabuduce zase s novym highendo od ATI :D
Dwarden
nejde mi o nekonecne cekani spis o o to, ze test byl proveden na 7.5 coz znaci 3 mesice zpet tj. otazka zni proc ne 7.6 nebo 7.7 jinak ten novy AA je popsan v seznamu zmen u 7.7 " 12x and 24x Anti-Aliasing support for the ATI Radeon™ HD 2900 XT and ATI Radeon™ HD 2600 Series This release of Catalyst™ introduces support for 12X and 24X Anti-Aliasing for the ATI Radeon™ HD 2900 XT, and ATI Radeon™ HD 2600 Series. These new Anti-Aliasing settings are available through the new Anti-Aliasing Edge Detect Filter. Selecting 4X Anti-Aliasing plus selecting the Edge Detect filter deliver the equivalent of 12X Anti-Aliasing. Selecting 8X Anti-Aliasing plus selecting the Edge Detect filter deliver the equivalent of 24X Anti-Aliasing. " dalsi co jsem mel na mysli je moznost aktualizace vysledku testu napr. tedy az vyjdou 7.8 s komentarem typu "AMD.ATI evidentne zlepsuje/zhorsuje ovladace" :) a napriklad pridat test kvality prehravani videa :)
crux2005
Ovládač Catalyst 7.5 sme boli nútený použiť, nakoľko predstavoval v dobe testovania najaktuálnejšie WHQL ovládač. Catalysty 7.7 sme nemohli použiť nakoľko sa objavili až testne pred uverejnením článku. Okrem toho sme sa pozreli aj na výkon Catalystov 7.6, avšak v daných testoch sme nezaznamenali voči Catalystom 7.5 žiadne výkonnostné zmeny. Pokiaľ si pozorne čítal, tak si si určite všimol, že som túto zmenu spomenul v článku ;-) "Okrem toho je od Catalystu 7.7 dostupný štandardne aj edge detect mód. (Poznámka: my sme museli pre testovanie kvality EDCFAA použiť ešte beta ovládače a špeciálnu utilitku, ktorá nám túto možnosť sprístupnila)" Ďakujem za návrhy, budem určite rozmýšlať na ich možnom spracovaní. btw: každá pozitívna odoza ma samozrejme teší :)
Pridať nový komentár
TOPlist