ATI HyperZ

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

ATI HyperZ je technologie pro zvýšení výkonu GPU, díky lepšímu využití propustnosti paměťového subsystému, odstranění zbytečných operací s daty a optimalizace renderovacího procesu. Tvoří ji 3 základní části: Z Compression, Fast Z Clear a Hierarchical Z-Buffer. Spolupracuje i s T&L engine – Charisma Engine.

Dovoluje zlepšení kvality obrazu bez propadu výkonu. Využití se našlo třeba při použití AA nebo AF, kde roste náročnost na přenesená data.

Vyvinula ji firma ATI pro své grafické čipy Radeon, následně ji zlepšila pod odkoupení firma AMD.

Historie[editovat | editovat zdroj]

Technologie byla poprvé použita u Radeonů 7500 (jinak pojmenovány Radeon DDR, jádro R100). Díky tomu udržely výkon s GeForce. V Radeonech 8500–9250 (jádro R200) byl realizován HyperZ II. Následoval HyperZ III v Radeonech 9700 (jádro R300). Vylepšený HyperZ III+ byl použit v Radeonech 9800 (jádro R300). Následoval HyperZ HD, který byl použit na Radeonech X8xx.

Technologie[editovat | editovat zdroj]

Používají se tři techniky pro zvýšení výkonu. Všechny nejsou viditelné z vrstvy programu, díky čemu nedochází k výkonnostnímu propadu.

Z Compression (Z-buffer)[editovat | editovat zdroj]

Z-Buffer používá algoritmus bezeztrátového kompresního formátu k získání větší propustnosti, čímž se přenese více dat. Komprese a dekomprese se provádí v reálném čase. Využívá se třeba v Z-Buffer. Použití u Radeon 8500 zvýšilo efektivitu o 20 % oproti Radeonu 7000 (jádro R100). Poměr komprese u Radeon X1050 je až 48:1.

Kompresní schéma[editovat | editovat zdroj]

Velikost vyrovnávací paměti je 8x8 pixelů. Komprese má 2 možnosti: 1) ½ původní velikosti a nazývá se špatná komprese (poorly compressed) a za 2) ¼ původní velikosti a nazývá se dobrá komprese (well compressed). Základní algoritmus je DDPCM (Diferenciálně diferenciální pulzní kódová modulace = Differential differential pulse code modulation).

Fast Z Clear[editovat | editovat zdroj]

Slouží k efektivnějšímu využití Z-bufferu, díky vyčistění celých bloků paměti grafické karty po každém snímku, k použití pro další snímek. Tato technologie podle ATi dokáže zrychlit v dané operaci kartu až 64x než bez použití technologie, konvenčním zápisem nul. Nemaže barvy z bufferu. Blok v paměti může být komprimovaný, nekomprimovaný a nebo prázdný.

Čištění se provádí jako zápis a tak je proto potřeba max. přenosovou rychlost sběrnice, kvůli tomu vznikla potřeba této technologie.

Velikost Z-buferu při rozlišení 1600x1200 je zhruba 8 MB.

Hierarchical Z-Buffer[editovat | editovat zdroj]

Pomocí této technologie se odstraňují pixely nebo plochy, které nebudou viditelné na obrazovce. Například HyperZ "I" uměl v taktu odstranit 8 nepotřebných pixelů, HyperZ II uměl odstranit v jednom taktu už 64 nepotřebných pixelů. V frame bufferu dochází k přepisu vzdálenějších pixelů blížšimi, tento proces se jmenuje overdraw. Parametr hloubka složitosti (depth complexity) určuje množství výskytu overdraw. Nejběžnější hodnoty jsou 2 nebo 3, při velikosti 3 je 3x více renderovaných pixelů než viditelných. To logicky snižuje výkon renderovacích procesu.

Log. obvody Hierarchical Z-Buffer zkoumají scénu ještě před samotným renderováním a části scény, které nebudou viditelné, tak odstraní z renderování a díky tomu dojde k zvýšení výkonu.

Zvýšení výkonu se zajistí taky když aplikace bude optimalizovaná pro kreslení grafiky od popředů do pozadí, za použití tohoto principu by z toho těžily i grafické čipy bez Hierarchical Z-Buffer.

  • Occluder merging
  • Vyrovnávací paměť pro textury (Texture cache) - do paměti nejsou načítaný textury pro smazané neviditelné plochy.
  • “Harder” pixels

Z-buffer[editovat | editovat zdroj]

Z-buffer se používá k ukládání barvy, geometrických údajů, údajů o poloze objektu a hloubce 3D scény, díky tomu se používá pro výpočet viditelných a neviditelných částí scény a následnému použití při Hierarchical Z-Buffer. Ukládání se nazývá Z-Buffering.

Verze[editovat | editovat zdroj]

  • HyperZ "I" – byl použit v grafických jádrech R100 (grafická karta Radeon DDR). První verze HyperZ snižovala objem posílaných „dat“ (informací) přes sběrnici z grafické paměti do bufferu. Díky tomu uvolňovala potřebnou propustnost pro vyšší rozlišení.
  • HyperZ II – byl použit v grafických jádrech R200 (grafická karta Radeon 8500). Pouze zdokonaluje původní verzi. Snížení velikosti bloku z 8x8 na 4x4. Zvýšení počtu odstraněných pixelů z 8 na 64. Všechny vylepšení zvýšily výkon teoreticky o 20%.
  • HyperZ III – byl použit v grafických jádrech R300 (grafická karta Radeon 9700). Použití flexibilnější vyrovnávací paměti (cache) Z-bufferu, který je optimalizován i pro dynamické stíny v reálném čase. Stíny hrály významnou roli při vytváření realističtějších virtuálních prostředí. Kompresní poměr až 24:1 z 8_1.
  • HyperZ III+ – byl použit v grafických jádrech R350 (grafická karta Radeon 9800). Poslední inovativní verze HyperZ technologie pro šetření potřebné propustnosti. Hrál významnou roli u série Radeon 9800 a 9600 pro zvýšení výkonu. Vylepšení Z-cache (blok urychlující práci Z-buffer), účinnější komprese Z-dat, zvýšení maximální hodnoty kompresního poměru až na 24:1, optimalizace stencil bufferu a zvýšení rychlosti vykreslování dynamických stínů, ke které se používá zmiňovaný stencil buffer.
  • HyperZ HD – byl použit v grafických jádrech R420 (grafické karty Radeon X800) a vyšší. Zvýšení efektivity přenosu dat mezi grafickou pamětí a čipem (příslušnými obvody). Odstraňuje problémy jako jsou úzké přenosové pásmo a další, které vzniká při vysokém rozlišení a vysoké kvalitě obrazu. Dosahuje se toho díky kombinaci skrytého poškození povrchu, bezeztrátové komprese, ukládání dat do cache a rychlého vymazání cache a paměti. GPU s podporou HyperZ HD obsahoval 3-úrovňový hierarchický Z-buffer.

Výkon[editovat | editovat zdroj]

Teoretické zvýšení propustnosti s nastavením hloubky složitosti = 3.

Rychlost a typ paměti Propustnost bez Propustnost s
160 MHz SDR 221 266
160 MHz SDR 443 531
183 MHz SDR 488 586
200 MHz SDR 533 640

ATI Radeon 64 MB DDR[editovat | editovat zdroj]

  • 3D Winbench 2000 (HyperZ off/on)
    • Rozlišení 640x480: 135/170 = zvýšení výkonu o 25,9%
    • Rozlišení 1024x768: 75/102 = zvýšení výkonu o 36%
    • Rozlišení 1600x1200: 35/52 = zvýšení výkonu o 48,6%

Z Compression a Fast Z Clear[editovat | editovat zdroj]

  • GPU - 166 MHz jádro a 166 MHz DDR paměť (nejspíš jde o čip R100 nebo R200)
  • 3D Winbench (celkově) je výkonnější o 29%
  • Quake je výkonnější o 24%
  • 3D Mark (příroda) je výkonnější o 24%

Hierarchical Z-Buffer[editovat | editovat zdroj]

% pixelů, které neprošly Z testy / % pixelů které neprošly Z testy včetně použití Hierarchical Z-Buffer

  • 3D Winbench (4): 49%/65%
  • 3D Winbench (9): 24%/93%
  • Quake: 19%/51%
  • 3D Mark (město): 22%/44%

Související články[editovat | editovat zdroj]

Externí články[editovat | editovat zdroj]

Oficiální[editovat | editovat zdroj]

Uživatelský[editovat | editovat zdroj]