ATi Radeon 9700 - král mezi grafickými čipy II.
31.7.2002, Zdeněk Kabát, článek
Dnes Vám přinášíme druhou část rozsáhlého popisu nového vládce mezi grafickými čipy, ATi Radeon 9700. Po hlavních specifikacích a popisu architektury čipu a paměti zveřejněných v první části naleznete v tomto článku kompletní popis pipeline včetně výtečné technologie SmoothVision 2.0. A věřte že je o co stát…
Kapitoly článku:
- ATi Radeon 9700 - král mezi grafickými čipy II.
- Pixel pipeline a SmartShader 2.0
- SmoothVision 2.0 a Anizotropní filtrování
Pixel pipeline
Poté, co jsou vytyčeny a osvětleny všechny potřebné vrcholy, je dalším krokem vyplnění polygonů jednotlivými pixely. Barva je určena podle druhu textury a osvětlení jednotlivých vrcholů a také podle druhu materiálu. Celou tuto fázi zajišťují malé programy zvané pixel shadery, které jsou s daty zasílány do grafického jádra.
Radeon 9700 přichází jako první grafický procesor s osmi paralelními pixelovými pipeline, které dokáží logicky vykreslit až 8 pixelů současně. Každá z těchto 128-bitových renderovacích pipeline obsahuje nezávislou TMU a pixel shader engine. Díky dvěma texturám na TMU je Radeon 9700 schopen vykreslit až 8 x 1 x 2 = 16 textur v jednom průběhu. Formáty textur jsou rozličné - jedno-, dvou- nebo třírozměrné s bilineárním, trilineárním nebo anizotropním filtrováním.
Díky podpoře Pixel Shaderu 2.0, obsaženého ve specifikace DirectX 9.0, podporuje pixel pipeline floating-point operace, které jsou daleko přesnější a poskytují vyšší rozsah hodnot něž celočíselné operace používané doposud. K výpočtům je použita až 96-bitová přesnost, která je nutná pro ty nejvyspělejší efekty poskytované Radeonem 9700. Barvy obsahují dokonce až 128-bitovou přesnost (článek o 128-bitových barvách vyjde v pátek).
Pokud se Vám zdá jediná texturovací jednotka na každé pipeline málo, musím Vás vyvést z omylu. Pokud totiž vezmeme v úvahu 32-bitovou trilineární texturu, pak je potřeba 32-bit x 8 (trilineární textura) x 8 (počet pipeline) = 2048 bitová šířka pásma, kterou ale paměť ani se svými 2 x 256 bity nemůže poskytnout. Při bilineární textuře je stále potřeba 1024 bitů v jednom cyklu, a tak by další TMU neměl žádný smysl.
Výše vidíte jednu z osmi pixelových pipeline grafického čipu Radeon 9700. Díky schopnosti provádět současně až tři instrukce dosahuje pipeline vysoké efektivity. Všechny tři operace jsou samozřejmě desetinné a zahrnují vyhledávání textury, jednu texturovou adresovací operaci a jednu barevnou operaci. Stejně jako u vertex shaderu je díky implentaci více schopností do jedné pipeline zajištěno maximální využití.
Podle specifikace Pixel Shader 2.0 je pixel pipeline schopna provést až 160 instrukcí. Každý pixel shader program dokáže provést až 32 vzorkovacích operací na 16 různých texturách a dalších 64 barevných operací. Počet cyklů na jeden průběh je různý a může dosáhnou i vyšších čísel, např. při použití anizotropního filtrování. Když je překročen limit 160 instrukcí, nastane multipass díky kterému se program dokončí v dalších cyklech.
Obr. 10 - Efekt 128-bitové FP hloubky barev
Díky 128-bitové hloubce barev s desetinnou čárkou jsou výsledky zpracovávaných obrazů vskutku uchvacující. Tuto technologii zde nebudu příliš rozvádět, ale vše se dozvíte v pátečním článku o 128-bitových barvách. Další výhodou této barevné hloubky je vysoký rozsah jasu, kterého byste při 32-bitových barvách nedosáhli. Zde jsou nějaké obrázky z Anadtechu, které ukazují velký rozsah barev:
V konečné fázi jsou ale 128-bitové barvy převedeny zpátky na formát 10:10:10:2 (a zaokrouhleny).
SmartShader 2.0
Technologii SmartShader jsme nižší verzi představili už v popisu Radeonu 9000 Pro a ATi ji nezapomněla implentovat ani do Radeonu 9700. V podstatě jde o technologii, která umožňuje výkonnější a flexibilnější manipulaci s vertex a pixel shadery. S trochou nadsázky lze říci, že takto technologie je jedním ze strůjců efektů filmové kvality v real-time hrách a jiných interaktivních aplikacích. SmartShader 2.0 je plně kompatibilní s DirectX 9.0 a OpenGL 2.0.