2010. július 28., szerda

Miért van a DX10 a Vistában? 1.rész


A DirectX10 API grafikus része összeségében öt nagyobb változáson
esett át az API:
1. Fejlesztett programozói kifejezőkészség (Shader Modell 4.0 és Geometriai Shaderek)
2. Szoros hardver specifikációk
3. Növelt teljesítmény (kevesebb parancs ciklus képenként)
4. Egységes utasítás készlet (High Level Shader Language 10)
5. Stream I/O (A geometriai shaderek írhatnak a memóriába)
Bár a kódolás megkönnyítése és a hardver specifikációk szorosabbra fűzése jól hangzik a szoftver
és hardver gyártók számára, a profi felhasználók vére az utolsó háromtól fog lázba jönni, mely a
D3D10 egységesített shader architektúrájából ered. Nem maga a hardver, hanem amire ezzel képes az igazán lenyűgöző.
Ha csak az architektúrát nézzük, egy egységes rendszer tűnik a leglogikusabb megoldásnak a
dolgok kezelésére. Miért legyen külön fix számú pixel és vertex shader, amikor a terhelés
tekintetében ezeknek a számát változtatni is lehet. Az egységes utasításkészlet segítségével a
streaming vagy lebegőpontos processzorok menet közben állíthatják a funkciókat. Ez a funkció
segíti az Nvidia G80 processzorát (GeForce 8800 sorozat), hogy a régebbi generáció munkájának
kétszeresét el tudja végezni. Míg a tranzisztorszám a kétszeresére nőtt a G70-hez képest, a
nyereségi arány közel sem 1:1-hez. Ahelyett, hogy bizonyos esetekben szűk keresztmetszet lenne az egyik feldolgozó egység, a mag át tudja magát konfigurálni, hogy alkalmazkodjon az adott kihíváshoz.

2010. július 9., péntek

Grafikus API-k a Vistában


OpenGL
Eredetileg a Microsoft saját OpenGL implementációt készített volna. Végül arra jutottak, hogy a támogatás és ISV szempontból sem lenne értelme, így a hardver gyártókra bízták a saját verziójuk elkészítését. Ha nincs IHV meghajtó telepítve, a Vista visszatér a gyárilag csomagolt verzióra. Chuck Walbourn szoftver mérnök cikke szerint, melyet a Microsoft Developer Network-ön publikált, 3 dolgot tehet a Vista az OpenGL gyorsítással kapcsolatban.
#1 MS OpenGL Szoftveres Renderelés (Ez OpenGL 1.1)
"Ha nincs ICD telepítve, a rendszer visszaáll az OpenGl v1.1 szoftveres rétegére."
#2 Gyártó OpenGL meghajtója
"A Windows Vista hasonló támogatást nyújt az OpenGL-hez, mint a Windows XP, vagyis a videó kártya gyártók elkészíthetik a telepíthető kliens meghajtóikat (ICD), melyek hardveres gyorsítást
kínálnak; a Vista teljes támogatásához az újabb verziójú ICD-kre lesz szükség."
#3 Vista veszi a régebbi API-t és becsomagolja D3D-be
"A Windows Vista grafikus rendszerét úgy tervezték, hogy a hardverek és felhasználási esetek többségét támogassa, ezzel új technoplógiákat lehet alkalmazni a régiek megtartása mellett. A már
létező grafikus interfészek, mint a GDI, GDI+, és a Direct3D régebbi verziói továbbra is működnek a Vistán, de ahol lehet, ott a rendszeren belül átalakítják őket. Ez azt jelenti, hogy a legtöbb Windowsos alkalmazás továbbra is működőképes marad. A Windows Vista továbbra is támogatja a Windows XP által használt Direct3D és DirectDraw interfészeket, egészen a DirectX 3-as verziójáig (kivéve a Direct3D Retained Mode-ot, amit kivettek belőle). Ugyanúgy, mint a Windows
XP Professional x64 Edition-nél, a 64-bites natív alkalmazások a Windows Vistán limitálva vannak a Direct3D9-re, DirectDraw7-re, vagy az újabb interfészek használatára. A nagy teljesítményű alkalmazásoknak érdemes Direct3D 9-t vagy újabbat használni, hogy a hardver teljes képességeit ki tudják használni."
Volt alkalmam beszélni Barthold Lictenbelttel, aki az OpenGL architektúra felügyeleti testületének elnöke. Azt mondta, hogyha nincs ICD meghajtó telepítve, akkor a D3D-be csomagolás fog működni. Ez azt jelenti, hogy az OpenGL 1.4 szoftveres fog futni D3D-ben. A legjobb implementáció pedig a hardver gyártó OpenGL meghajtóját fogja használni. Megkérdeztem Barthold véleményét az OpenGl jövőjéről a Vistán és más fejlesztésekről. Míg a beszélgetés veleje nem tartozik ebbe a cikkbe, leszögezte, hogy az openGL-nek igenis van keresnivalója a Vistán és azt jósolta, hogy az openGL-nek nagyobb lesz a teljesítménye, mint a
most érkező új D3D szabványnak. Mivel az OpenGL 14 éves, mondta Lichtenbelt, az idei évben két új specifikáció várható.
"Kipofozzuk az OpenGL-t," mondta, hogy a fejlesztők "gyorsabban írhassanak stabilabb
alkalmazásokat, kevesebbe hiba legyen, ami nagyon nagy haszon."
"[Az ARB] nagyon agresszív az OpenGL idei kiadásával kapcsolatban," mondta Lichtenbelt.
A Longs Peak lesz az első kiadás. Ez a specifikáció a legtöbb létező hardver számára jó lesz. A következő specifikáció a Mt. Evans lesz (mindkettő Coloradóban található hegységekről nevezték el), ami már támogatja a geometriai shadereket és a D3D10-es hardverek egyéb újdonságait is.