A következő címkéjű bejegyzések mutatása: meghajtó. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: meghajtó. Összes bejegyzés megjelenítése

2010. augusztus 22., vasárnap

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


Egy erőteljes Input Assembler (IA) látja a processzor komponenseit megfelelő mennyiségű
munkával, hogy mindig 100%-kos legyen a kihasználtság. Az IA meg is címzi az adatokat, így
azokat a többi szállal együtt lehet kezelni, ezen felül meg is duplázza az adatokat, hogy a befejezett munkák újrarendezését minimalizálja. Ezt hívják instancing-nak. Az IA így százas vagy akár ezres nagyságrendben képes teljes objektumokat létrehozni és megcímkézni, majd ezekkel elárasztani a képernyőt. Ez egyszerűen lehetetlen a régebbi architektúra generációkkal.
Ezek a változások a processzor nagyobb hatékonyságához vezettek. Emellett örvendetes tény, hogy az óriási meghajtókkal való bajlódást is megpróbálták a minimálisra csökkenteni. Ahogy már említettük, a meghajtók nagy részét kiemelték a kernel módból a Vista alatt. A kisebb többletköltség azt jelenti, hogy a CPU és más komponensek még több munkát tudnak végezni. Emiatt többnek tudnak a ti dolgaitokkal foglalkozni. A játékok esetében, ez nagyobb fps-t vagy jobb grafikai minőséget vagy fizikai szimulációt jelent a jelenlegi frame rate mellett.
Végül pedig itt vannak a Geometriai shaderek (GS). Míg a jelenlegi játékok nem tudják kihasználni az általa kínált funkciókat, a jövő alkalmazásai már biztosan alkalmazni fogják. A GS ereje abból fakad, hogy képes a memóriába írni. Ezt egy Stream Output (SO) segítségével teszi meg. Az SO segítségével a geometriai shader a folyamat bármely részéből tud adatokat beolvasni saját magába.
Ez azt jelenti, hogy az IA és a vertex shaderek felöl akár meg is szűnhet az adatáramlás. A
jeleneteket úgy is fent lehet tartani, hogy csak a kimeneti adatokat manipuláljuk. Csak képzeljétek el, hogy milyen játékokat lehetne így valós időben generálni (kérem a vertikálisan és horizontálisan scrollozó játékaimat 3D-ben).

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.

2010. június 18., péntek

A Vista grafikus interfészének áttekintése

Vagy a Weben, vagy pedig egy rövid összefoglalóban már biztos találkoztatok a Vista új
kinézetével. Az előző verziókhoz képest a változás nem csak a felszínt érinti. A grafikus interfész
sokkal többet változott. Egészen a magot is érinti. A korábbi Windows verziók a graphical device
interface-t (GDI) használták, mint fő programozási interfészt (API) a különböző 2D kimeneti
eszközök kezelésére. Míg a GDI volt az alapja a 2D-s és a főbb felhasználói interfész élményeknek, a 3D-s játékok és alkalmazások a DirectDraw és a Direct3D segítségével működtek. A Windows 2000-től kezdődően a meghajtó programoknak teljesíteniük kellett a Windows Driver Models WDM követelményeket. Tehát minden kernel módú meghajtónak szabványosnak kellett lennie. Az újabb verziók általában elérhetővé tették a régebbi WDM funkciókat, kivéve ha nem volt szükség nagyobb változtatásokra. Lejjebb a Windows XP meghajtó modell (XPDM) és ennek a kapcsolata
látható más API-kkal.
Az összes korábbi Windows verzió 2D-s interfészt használt. A Vista felhasználók már választhatnak 3D-s asztalt is. A megemelkedett grafikai teljesítménynek köszönhetően a Microsoft teljesen más megközelítést alkalmazott az új Windows Vista Display Driver Model (WDDM) megalkotásánál.
A régi rendszer alatt, nem volt ritka, hogy az egész rendszer összeomlott, ha a grafikus alrendszer bedöglött. Ez már nem fordulhat elő a Vistánál. A Windows NT-től kezdve az XP-ig, a meghajtó modell a kernel része volt. Ez gyorsabb grafikus teljesítményt eredményezett, de a rendszer instabilitása volt az ára, mivel egy hibás meghajtó lerombolhatta a Per Brinch Hansen által "rendszer nukleusznak" hívott részt. Kernel módban egy folyamat átírhat olyan memóriaterültet, ami más folyamathoz tartozik vagy bármi mást.
Ennek megvoltak a veszélyei és a Microsoft lépett is ez ügyben, mivel a modern grafikus
processzorok legalább olyan bonyolultakká, ha nem bonyolultabbá váltak, mint egy CPU. Ez a
bonyolultság robosztus meghajtót igényel, mint amilyen a 34.6 MB-os Catalyst 6.12 driver
Windows XP alá, ami az AMD/ATI's honlapról tölthető le. A meghajtó egyes részeinek a
felhasználói térbe történő helyezése (WDDM User) enyhíti a rossz meghajtóból adódó problémákat.
Egy kernel módú driver (KDM) is működik a megfelelő helyen, de a főbb részei a meghajtónak az
értékes magon kívül tevékenykednek. Nem csak a grafika az egyetlen terület ahol ez a váltás
megtörtént: USB, nyomtatók, hang és egyéb eszközöknél is hasonló tapasztalható. A felhasználói
térbe helyezése a meghajtóknak, olyan új lehetőséget kínál, amire még nem volt példa: egy új
meghajtó telepítése után NEM KELL újraindítani a gépet.