RDNA 3 přechází čistě na unifikovanou geometrii a vždy zapnutou delta-kompresi
Na gitlab se objevila podpora pro GFX11, jinými slovy pro architekturu RDNA 3 (za doplněním této podpory je podepsán Marek Olšák, kterého asi není potřeba představovat). Uživatel diskuzního fóra webu Beyond 3D, Lurkmass, dostupný kód prošl a vypíchl několik zajímavostí, které by měly odrážet změny na úrovni architektury.
Next Generation Geometry (NGG) „4.0“ - plně unifikováno
První se týká zpracování geometrie. Architektura GCN od svého vzniku využívá několik paralelně fungujících geometrických procesorů. Generace Vega (GCN 5) přinesla i možnost využití tzv. NGG (Next Generation Geometry), která umožňovala přesunout úlohy z fixních geometrických pipeline na unifikované jádro. Nejsou však přesvědčivé důkazy o tom, že by AMD tuto možnost u Vegy využívala.
Příklad využití (bez, s) NGG Pipeline / Geometry Shader, který přebírá zátěž z fixních geometrických jednotek a dále zahrnuje i úlohu, kterou zastával Vertex Shader
Zcela prokazatelně ji však využívala u RDNA (Radeon RX 5000) a velmi široce u RDNA 2 (Radeon RX 6000), jak v listopadu 2020 upozornil uživatel 0x22h. Tím se vysvětlil i masivní mezigenerační nárůst geometrického výkonu, který vykazovaly testy. U obou architektur však různé úlohy využívaly do jisté míry geometrické jednotky i NGG, jen různou měrou (u novější RDNA 2 byla vyšší měrou využita NGG). RDNA 3, zdá se, kompletně eliminuje fixní geometrické jednotky a NGG tak bude využita ve 100 % situací.
Delta komprese (DCC) - vždy zapnutá, v celém GPU
Rozdílová barevná komprese umožňuje snižovat objemy datových přenosů obrazových dat v důsledku toho, že jsou přenášeny pouze rozdíly, nikoli kompletní obrazová data. Tuto obecnou myšlenku lze implementovat řadou způsobů i rozsahů. Připomeňme, že
Z historického hlediska se o DCC v segmentu grafických karet začalo více mluvit v roce 2014. Začátkem září v kontextu Radeonu R9 285, prvního GPU (Tonga) s architekturou GCN 3.0 a koncem září v souvislosti s vydáním GeForce GTX 900 s architekturou Maxwell 2.0. Ve skutečnosti byla DCC podporována již na Maxwell 1.0 (GeForce GTX 750/Ti), kde o ní Nvidia nemluvila a rozdíly ve výkonu a nárocích na sběrnici ponechávala nevysvětlené, což vytvářelo určitý „wow efekt“. (Pro úplnost je potřeba dodat, že delta kompresi využívala i starší GPU, ale ne pro kompresi frame-bufferu pro 3D.)
První dvě generace DCC u AMD prezentované při vydání architektury Polaris / GCN 4.0 (Radeon RX 480)
DCC byla na výše uvedených architekturách využívána pouze pro přenosy dat z frame-bufferu mezi grafickým jádrem a pamětmi. Postupem času byla podpora vylepšována a rozšiřována, takže narůstal jak kompresní poměr, tak prvky jádra vybavené podporou pro delta-kompresi. Čímž klesal počet situací, kdy musela být (z důvodu požadavku částí jádra, které DCC nepodporovaly) komprese vypnuta a zároveň narůstal počet situací, kdy spolu různé části jádra mohly komunikovat komprimovaně. Pokles datových přenosů má pak pozitivní vliv na energetické nároky čipu.
Z podpory GFX11 / RDNA 3 se zdá, že podíl situací, kdy je potřeba z důvodu nějakého „nekompatibilního“ požadavku DCC vypnout, klesl na nulu. U nové generace čipů nejspíš podporují DCC všechny relevantní části grafického jádra, takže může být stále zapnutá (fakticky nedochází k dekompresi).
Konec hardwarového MSAA (nebo konec hardwarových ROP)?
MSAA, multi-sample anti-aliasing byla metoda vyhlazování, která začátkem tisíciletí přinesla kompromis mezi kvalitou a výkonem, jenž umožnil použití anti-aliasingu na hrách pocházejících z doby konkrétní generace hardwaru. Starší metody měly podstatně vyšší nároky na výkon, takže je bylo možné používat spíše u starších her (starších míněno oproti grafické kartě).
Vývoj herního renderingu se však začal ubírat směry, které nejsou s MSAA kompatibilní, takže už dlouhou řadu let pozorujeme čím dál výraznější úbytek titulů, u kterých lze MSAA použít. Zpravidla je to kompenzováno podporou jiných metod anti-aliasingu, v posledních letech především TAA (temporal anti-aliasing).
GFX11 vypouští podporu pro CMASK/FMASK a CB_RESOLVE a popisovače (Image descriptors) jsou redukovány z 64 bajtů na 32 (horních 32 sloužilo pro FMASK hodnoty). Vynechání podpory těchto prvků na úrovni softwaru celkem jasně poukazuje i na jejich vynechání na úrovni hardwaru. MSAA jako takový nejspíš podporovaný zůstane, ale ty kroky, ke jejichž uskutečnění byl potřeba pro MSAA specifický hardware, budou realizovány výpočetně (unifikovaným jádrem). Dále je vypuštěna podpora pro EQAA (Enhanced Quality Anti-Aliasing) uvedený před 12 lety s GPU Cayman / Radeon HD 6000 (více např. Anandtech).
Samozřejmě zůstává otázkou, zda se k tomu AMD odhodlala na základě toho, že hardware dosáhl stavu, ve kterém může MSAA provádět bez citelně negativního vlivu na výkon i bez specializovaných obvodů (a ty se staly zbytečnými), nebo AMD nevidí v jejich přítomnosti s ohledem na požadavky her důvod a implementovala alternativní řešení, nebo AMD hledala cesty k úspoře tranzistorů. Nebo (a to nejpravděpodobněji) jde o kombinaci těchto důvodů a myšlenek.
Pak si ovšem nelze nepoložit otázku, zda dříve či později nedojde i k přesunu ostatní funkcionality ROP jednotek na výpočetní jednotky a jejich úplné eliminaci z grafického jádra.
Všechny jmenované změny naznačují určitý trend: Vypadá to, že AMD s RDNA 3 již pouze nepřidává tranzistory pro podporu dalších technologií, ale zároveň čistí návrh čipu (respektive architektury) od rudimentů, které stojí nějaké tranzistory, ale nejsou pro správné fungování nutné či potřebné. Může to směřovat k poměrně výraznému přerodu podoby budoucích GPU, v podstatě k jednomu z největších od počátků 3D akcelerace.