üzenetek

hozzászólások


lezso6
(HÁZIGAZDA)
Blog

Abura visszatérve egyébként azért érdekes dolgok vannak. Ugye amikor DX11 volt, akkor GCN indulásának táján azt mondta, hogy nem lesz DX12, hanem "szoftver render" lesz. Utóbbi alatt nem az értendő, hogy visszamegyünk a kőkorba, hanem hogy a grafikai futószalag nem lesz fix.

Ugye 2009-ben jött a DX11 illetve a GRAMPS paper. Utóbbi a jövőt vázolta (esetleges DX12, új API-k), s teljesen logikus lépésnek is tűnik, hiszen a jelenlegi DX grafikai futószalag alkalmatlan például ray-tracingre. A compute shader jött még mint félig megváltó valami, mert azzal megkerülöd a grafikai futószalagot és ezzel együtt a limitációit is. Ez teszi lehetővé Asyncronous Compute-ot is.

Tehát lényegében van nekünk egy legacy, fix valamink, a grafikus futószalag. Ehhez képest mi történt? Semmi nem valósult meg a GRAMPS-ból, vagy legalább alig, inkább más limitációkat kellett megszüntetni.
2013-ban jött a Mantle, melynél a lényeg tömören az, hogy a driver feladatait minimalizálja, s a fejlesztőnek ad rengeteg kontrollt. 2015-ben ennek köszönhetően megszületett a DX12. A többit tudjuk. :D

De WTF is GRAMPS? :F Ugye egy programozható futószalag modell lenne. De ennek megértésehez érdemes visszamenni az időben.

Elsőnek vegyük a régi fix futószalagot, ahonnan indultunk, hardveres transzformációval és megvilágítással (HW T&L), amit először hardveresen a Geforce 256, szoftveresen pedig a DirectX 7.0 hozott el. Valahol itt végződött el az a folyamat, hogy a CPU-t tehermentesítsük a GPU-val. Viszont problémát okozott a grafika programozhatóságának teljes hiánya, csak fixfunciós egységek voltak a GPU-kban.

Itt jöttek a shaderek, a programozhatóság, DX 8.0-tól. Az elmúlt idő alatt a futószalagot gyakorlatilag agyonfoltozták egy halom shaderlépcsővel, mindegyik egy bizonyos fázisokban, bizonyos feladatokra alkalmazható. Persze kombinálhatók is. Ezeken kívül volt persze sok más módosítás is a futószalagon, de a shaderek a leglátványosabbak, s ezek használják a teraflops-ok erejét. Tehát:

1. Pixel vagy fragment shader (DX 8.0): egy adott terület (jelen esetben pixel) színét tudod vele programozni, hogy hogyan nézzen ki. Legegyszerűbb alkalmazása pl valamilyen post-process effekt, de lehet vele egy adott felület árnyalni is.

2. Vertex shader (DX 8.0): egy pontot a térben (poligon csúcspontját) tudsz vele átpozicionálni.. Például víz hullámzása ezzel oldható meg, miközben pixel shadert használva megárnyalod a víz felületét. De pl ugyanígy lehetséges az árnyékolás is.

3. Geometry shader (DX 10): ez létre tudsz hozni új primitíveket, azaz pontokat, egyeneseket vagy teljes háromszögeteket is. Ez elég sok lehetőséget ad komplex effektek segítésére. Pl jóval pontosabban árnyékolás lehetséges vele, de ez csak a jéghegy csúcsa.

4. Hull és domain shader (DX 11): ezzel tudsz durvább geometriai vázakat felbontani sokkal finomabbra egy általad definiált algoritmussal. Ez nem más, mint a tesszeláció.

5. Primitive shader (Vega only): ez eléggé csodabogár. Ezzel meg tudod oldani GPU-gyorsítva az ún. cullingot, azaz a szükségtelen, nem látszó primitívek eldobását. De ezen felül a vertex, geometry és domain shader is kiváltható lenne vele, tehát egyfajta utódként is tekinthetünk rá, vagy foltozás foltozásaként. :D DX support jelenleg nincs.

6. Compute shader: ezt nem igazán kell magyarázni, a grafikai futószalagon kívül van. Sok minden már gyorsabb ezzel megvalósítva, mivel nem követel meg bizonyos hardverállapotot, mint az előző shaderek. Szóval egyre népszerűbb ezt használni.

A GRAMPS úgy jön ide, hogy már a futószalag is programozható, tehát nem fix. A jelenlegi formájukban a fixfunkciós egységek kukák, és programozhatónak kell lenniük. A primitive shader pont ebbe az irányba mozdult el (programozható geometriai motor), szóval ezért van körülötte akkora buli.

A GCN egy svájci bicska, jelenleg nagyon kevés választja el attól, hogy megfeleljen a GRAMPS-nak, mint hardver. Lehetséges, hogy arra apelláltak az elején, hogy ez progresszív irány lesz a jövő, csak aztán alaposan felsültek vele, sehol nem vagyunk. Még mindig eléggé messze van ez GRAMPS nevű csoda, erre még várni kell, egyelőre csak kutatások vannak ezirányban. Addig marad a foltozás, azaz a Compute Shader trükközés meg a Rapid Pack Math.

[ Szerkesztve ]

üzenetek