Setup engine
Thread setup som oddelil, nakoľko sa nachádza pred setup enginom, ale mohol som ho napísať aj sem. Je zodpovedný za to, aby sa vlákna (thready) a dáta dostali do správnej podoby a formátov, ešte pred poslaním do dispatcherov (túto časť čipu si rozoberieme ďalej v článku), kde sú spracované. Odosielané sú v podobe skupiny threadov. Následne na nich pracuje shader core. Pokiaľ dochádza k vertex processingu, je setup hardware zodpovedný za usporiadanie dát v pamäti pre optimálny prístup - teda vertex fetch nie je obmedzovaný pamäťou. Okrem toho je zodpovedný za konfiguráciu a prísun dát do tesselátora.
Tesselátor ako súčasť setup enginu predstavuje pred-shading úroveň. Jeho výstup sú koordináty geometrie a textúr, ktoré posiela ďalej assembleru, aby na nich pracoval. Môže pracovať v podstate voľne, nakoľko generovaná geometria skoro nikdy nezaplní pamäť Vram. Takéto situácie však môžu sporadicky nastať. Limitovaný môže byť rasterizérom a evaluation funkiou, ktorá sa využíva pri tesselácii. Nakoľko by sa dalo o tesselátorovi napísať samostatný článok, tak sa mu už na tomto mieste nebudeme viac venovať.
Rasterizáciou sa generujú časti „tiles“ (dlaždíc) z geometrie, ktoré putujú do shader core na výpočet. R600 využíva podľa všetkého rovnaké 16x16 rozdelenie obrazu na štvorce ako predchádzajúce Radeon grafické karty.
Medzi ďalšie vylepšenia R600, ktoré spadajú do setup enginu, patria vylepšenia Hierarchical-Z a Hierarchical Stencil. Sú teraz optimalizované pre veľmi vysoké množstvo pixelov (4Mpixelov a viac). Hier-Z/S buffery predstavujú rôzne pohľady na depth a/alebo stencil hodnotu v tile, aby vedeli rozhodnúť či odhodiť geometriu pred rasterizáciou, a tým znížiť počet pixelov poslaný hardwarom alebo nie.
Samozrejme, využíva sa aj early-Z v tradičnom chápaní (otestovať a odhodiť každý pixel individuálne), avšak hier-Z pomáha znižovať počet testov, ktoré musia byť uskutočnené, nakoľko môže odhodiť naraz viac pixelov čo šetrí priepustnosť pamäte. Každý stupeň v buffer pyramíde obsahuje rôzne čísla z rozdielnych hodnôt pre Z/S, ktoré kontroluje hardware, aby vedela rozhodnúť, či odhodiť alebo ponechať a poslať ďalej tile.
R600 zavádza okrem toho aj novinku s názvom „Re-Z“. Umožňuje GPU skontrolovať Z-buffer dvakrát. Prvýkrát pred pixelshaderom a druhýkrát po shader core výpočtoch.
Setup engine vykonáva aj príznakovú interpoláciu pre shading, napriek tomu, že máme tento obvod zobrazený v shader core. Pokiaľ sa dokončil setup riadí engine hotové thready, ktoré môžu byť rôznej veľkosti v počte objektov do shade core pre ďalšie výpočty. Hardware dokáže fetch 16 vertices za takt z pamäte Vram, vyhotoviť 1 hotový trojuholník za takt (max. hodnota: 742Mtriangles/s u HD 2900XT).
Nakoľko je threading model najnovších čipov AMD/ATi jeden z podstatných aspektov novej architektúry, venovali sme mu viac času.
subz3ro
gabriel
epto
Pavol Bobik
MichiGen
koro
Ryko
glide
thimy
A2C
noben
cpy
teho
Dwarden
crux2005
mirke
Dwarden
crux2005