[ A Windows XP/DirectX 10 mítosz nyomában ]

A Windows XP/DirectX 10 mítosz nyomában

  • 2007-07-08 22:41
Amióta csak a Microsoft bejelentette a DirectX 10-et, mint a Windows Vista új grafikus csatolófelületét, az internetes fórumokon végeláthatatlan viták alakultak ki arról, vajon alkalmazható-e az új megjelenítési mód Windows XP rendszeren is? Egyesek biztosra veszik, hogy a redmondi cég csupán marketingfogásból nem teszi elérhet?vé a DirectX 10-et XP-hez, mások már olyan kerül?megoldásról beszélnek, mely némi trükközéssel képessé teszi a Windows XP-t is DX10 grafikák megjelenítésére. De mi az igazság?


A DirectX 10 története dióhéjban

A DirectX 10 tervezésének kezdete jóval a Windows Vista, vagy korábbi kódnevén a Longhorn fejlesztésének ideje el?ttre nyúlik vissza. Mikor a Windows XP 2001 augusztusában elkészült, a redmondi fejleszt?csapat els? teend?i közé tartozott egy új grafikus alrendszer alapjainak lefektetése - egyel?re vázlatokban. Ezeket a terveket aztán a különböz? hardvergyártókkal együtt éveken keresztül csiszolgatták. Ötletek és javaslatok százai kötöttek ki a kukában, de ugyanennyi meg is valósult, végül a grafikus csipgyártókkal történt megegyezést követ?en 2003 vége felé megkezd?dhetett az érdemi fejlesztés.

Itt rögtön álljunk is meg egy szóra, hiszen sokszor hallhattuk már azt a vádat, hogy a Microsoft csupán üzleti megfontolásból nem engedélyezi a DirectX 10-támogatást Windows XP-hez. Mint az imént említettük, a DX10 kódjának els? sorai 2003 év végén születtek meg, ekkorra az XP már túl volt második születésnapján és az els? szervizcsomagon is. Ez tehát alapvet?en meghatározza a DirectX 10 platformfügg?ségét, mivel a kódot már nem XP-n (és nem is Server 2003-on), hanem magán a Longhorn-on fejlesztették, annak teljesen újraírt drivermodelljével és frissített kernelével együtt.

Az azóta elhíresült "Longhorn reset", vagyis az operációs rendszer teljesen új alapokra helyezése 2004-ben következett be, ez azonban lényegében nem érintette a DirectX és az Aero fejlesztéseket, mivel ekkor "csupán" a kernel-kódbázis Windows XP SP2-r?l Windows Server 2003 SP1-re áthelyezésér?l döntöttek redmondban. A felhasználó-módú drivermodell és a grafikus alrendszer fejlesztése tehát az eredeti terveknek megfelel?en haladt tovább, míg 2005 decemberben a Microsoft letölt? központjában megjelent az els? DirectX 10-et is támogató fejleszt?i csomag.

Az új kódbázis tehát már annyira sem hasonlított az XP-hez, mint az eredeti, ráadásul ezen az új kernelen is még számos változtatást kellett végrehajtani, mire az új grafikus API beépítésre kerülhetett. Az új drivermodell új lehet?ségeket is hozott, mint például a GPU task switching, vagy a GPU memóriakezelés, ezekhez pedig szintén kernelszint? támogatásra volt szükség, melyeket az eredeti kód nem volt képes ellátni. A DirectX 10 hardverkövetelményei között szerepl? új grafikus processzorok olyan új és szükséges, de rejtett funkciókat tartalmaznak, melyekkel a felhasználók, de még az API-programozók sem találkozhatnak soha.

Lehet azon vitázni, hogy a Microsoftnak vajon el kellett volna-e készítenie a DirectX 10 támogatást XP-hez is, az azonban nyilvánvaló, hogy az ehhez szükséges er?feszítések - és nem utolsósorban id? - nem fizet?dött volna ki sem a cégnek, sem a végfelhasználóknak.


Mégis sikerülhet?

Néhány hónapja nagy port kavart a hír, mely szerint egy alig 19 éves programozónak sikerült megoldást találnia DirectX 10 grafikák XP-n történ? futtatására. Az Alky Project fejleszt?je blogjában egyenesen kijelentette: semmi szükség DirectX 10-kompatibilis hardver beszerzésére, a programok a jelenlegi grafikus kártyákkal is használhatóvá válnak. Ez természetesen nem igaz, legalábbis nem teljesen. A programok ugyanis használhatók lesznek, de csak DirectX 9-es effektekkel, a DirectX 10 megjelenítésr?l mindenképpen le kell mondanunk.

De mit is csinál tulajdonképpen az Alky? Csodák sajnos nem léteznek, a módosított DLL-ek csupán az alkalmazások DirectX 10 API-hívásait OpenGL-re "lefordítva" továbbítják a telepített videodriver OpenGL-motorjának. A "wrapper" tulajdonképpen egy DX10-OpenGL fordító, melynek futtatásával nyilvánvalóan elveszítjük a natív DX10 kód által megjeleníthet? új effektusokat, ezen felül teljesítménycsökkenésre is számítanunk kell - de legalább elindulnak programjaink. (Ehhez hasonló fordítót egyébként annak idején a Microsoft egyik szakembere is készített a Quake grafikus motorjához, akkor viszont pont fordított volt a helyzet, a natív OpenGL utasítások a Direct3D motorhoz lettek "idomítva".)


Nevek és jelentésük

A DirectX 10 mítoszban hív?k lelkesedését sokszor az elnevezések téves értelmezése tartja életben, gyakran olvasni például, hogy a DirectX 9L tulajdonképpen a XP-hez készült, de titokban tartott DirectX 10 kódneve. Lássuk tehát, mely elnevezés mit takar:

  • A DirectX 9.0Ex a DirectX 9c kiegészítése oly módon, hogy az együtt tudjon m?ködni a Vista új grafikus alrendszerével és drivermodelljével (Windows Display Driver Model - WDDM). Mivel ezek a változások csak a Windows Vistában vannak jelen, a DirectX 9.0Ex is egy Vista-specifikus API.

  • A DirectX 9.0L a DirectX 9Ex korai kódneve, az "L" bet? a Longhorn-ra utalt.

  • A Windows XP nem képes DirectX 10 (Direct3D 10) alkalmazások futtatására a grafikus csatolófelületen és drivermodellen végzett igen jelent?s változtatások miatt.

  • A DirectX 10-es grafikák Xbox 360-on sem jeleníthet?k meg, mert a konzolban nincs jelen Shader Model 4.0-t támogató grafikus chip.





A Crytek új CryEngine 2 grafikus motorja - DirectX 10 effektekkel

2008-01-30 15:43
Nekem xp pro-m van, es naon bevalt:D nem is ternek at vistara (max egy oan 100,000 ft-os hardware fejlesztes utan) a dx10et viszont sajnalom:(. lehet, h ugyse tudnam kihasznalni a 2,66os Celeron procimmal, meg a 1,5 Gb ramommal, de aze tenleg szemetseg. Sztem, ha akarnak, egy fel ev alatt siman atirnak az egesz dx10et, h xp-n is menjen. ez csak aze van, h tobben vegyék a Vista-t. De amig nincs min 200,000 ft-os geped, addig nem eri meg:D
ui: en ugy hallottam, h a xp home- okot tenleg ujra kell rakni ugy felevente, me ha nem, akk jon egy nagy rakas problema:( de xp pro-n naon jo:)) ha vki nem ert egyet, v mast tapasztalt, az kommenteljen, me nekem csak professionalom volt:D
Értem. Így már világos, köszi a válaszokat! :)
Ez a demo a programozóknak készült, a grafikai motort próbálják eladni. Szóval nem DX10 demo, hanem CryEngine demo - ezért vannak olyan effektusok is bemutatva amik eddig is lehetségesek voltak, de a CryEngine-be bele van építve, így a programozó nem kell foglalkozzon ezekkel, ha megveszi a csomagot ezek automatikusan mennek.

2007-08-28 23:37
Hát valamiért csak bemutatták, mint újdonságot, én nem értek hozzá.
A videóban látott un. DX10-es effektetek szerintem simán a DX9c is tudná. Motion Blur, napszak váltakozás, nagy látótáv stb... ezek a Cryteknél a DX10-es effektek?? Nem is beszélve a Depth of Field-r?l, amit a 3dfx vezetett be a Voodoo 5-el.

2007-08-06 18:16
Egyik DirectX sem kompatibilis visszafelé, úgy van megoldva, hogy a csomagok mindig tartalmazzák a korábbi verziók binárisait is. A DX10 is "kompatibilis" lesz a 9-essel és a régebbiekkel.

Ráadásul a Vista mindkett?t használja, tehát ha nincs DX10 hardvered, akkor DX9 módban fut.
Na jó inkább azt mondja meg nekem valaki, hogy mi lesz a dx10 visszafelé kompatibilitásával? Mert csak a dx10 miatt nem fogom lecserélni a drága kártyámat ami csak dx9et tud... de szerintntem más sem fog rohanni, hogy rögtön vegyen egyet. Viszont valami olyasvalamit olvastam, hogy nem nagyon lesz visszafelé kompatibilis, mert teljesen más lesz a felépítése.

Akkor most a gyártók válasszanak a két verzió között és ezzel piacot veszítsenek vagy megírják 2xesen a motort -> töblettköltség. Vagy ha kompatibilis visszafelé akkor ez a bekezdés tárgytalan.
DFX, Asteri-X: Semmi olyat nem állítottam, hogy az alky jó vagy gyors, inkább valami olyasmit,hogy ha
1 db kiskorú reverse engineeringgel erre képes, akkor akár 3 db a DRM részlegt?l kölcsönvett MS-es forráskóddal felfegyverzett adult programmer elég lenne valami akár ennél jobbhoz is. Persze akkor a DRM kevésbé lenne kiforrott a Vistában, de szerintem elnéznénk, ha mondjuk csak az SP1 után lenne képes letiltani az S/PDIF -t protected content esetén.

A mítosz oszlatáshoz még a következ?kkel járulnék hozzá:
A DX10 jelenlegi formájában nem képes futni a korábbi Windowsokon. Moonman elmeséli, hogy miért nem. Ennek valóban nem marketing hanem technológiai okai vannak.
Az azonban nagyon is marketing döntés volt, hogy a DX10 jelenlegi formája olyan legyen, hogy erre ne legyen képes.

2007-07-11 15:23
Szóval Vista is tudja a GDI-t, ha netán szükség lenne rá...ez jó...:):)

2007-07-11 15:07
Semmi különös, olyankor GDI kompatibilitási módban jelenik meg a desktop.

2007-07-11 14:38
Tényleg. És valaki tudja azt, hogy olyankor mi van ha XP-s drivert teszel fel vistára?? Mert m?ködik és még jól is megy (persze aero meg DWM nélkül). Én arra lennék kíváncsi hogy olyankor mi történik?

2007-07-11 14:33
Ja ezt jól elszúrtam...a drivermodellel kapcsolatban...a megjelenítés alapelve a lényeg...mondjuk er?sen marketing az egész...régebben nem volt ez így...nemrégóta "módi" ez, hogy a régebbi windowsok szó szerint "le vannak szarva"...de hogy már az XP-nél is ez van, az már szerintem szégyen. Nem kérdéses hogy maga a Vista sokkal jobb, mint az XP, de azért az XP már jól bevált, évek alatt megérett rendszer, és sokan vannak úgy, hogy jobban szeretik a megszokott rendszert, és nem akarnak váltani. Bevallom én is, szeretem a Vistát, de csak ha mellette ott az XP is... ki tudja mikor kell el?szedni, mert 1-2 dolgot gyorsabban meg tudok rajta oldani, vagy éppen a játékok miatt. Engem például az zavar most, hogy a DX9-es játékaim nagy részét már jól viszi a Vista, de a "régebbieket", mint pl az Unreal Tournament 2004, azt már nem...pedig azok is játékok...ráadásul nem is akármilyenek...:)
Aster-X: "Az XP és a 95 drivermodellje nem nagyon különbözik egymástól...legalábbis az alapelv ugyanaz a GDI interfészen keresztüli megjelenítés, mígy a WDDM a D3D motort használja."

Az alap elv valóban ugyan az, de a driver model a kett? között ég és föld. Win95-WinME ig a videó kártya driver maga egy speciális alkalmazás, addig XP-ben egy módosított NT4 óta meglév? driver modell volt, amit utólag az MS XPDDM-nek nevezett el. DX8 s?t DX9 is nem csak Win2k/XP-re jelent meg, hanem Win98/WinME-re is én inkább erre hivatkoztam volna a Win95-ös példánál.

Érdekesség: John Carmack egy interview-ban azt mondta, hogy semmi szükség a DX10-re, közben a DOOM3-nak a kilopott alpha verziója már szeretett volna Geometry Shader-t használni.
falco: "Mellesleg ha egyke 19 éves programozónknak sikerült valamiféle megoldást találnia akkor talán mégsem oly er?forrás igényes."

Megnéztem a híres m?vét. Hát szinte semmi sem fut vele normálisan és itt nem a sebességre, henem csak szigorúan azt a tényt figyelembe véve, hogy elindul és ad valamilyen képet. Konkrétan egyetlen primitív D3D10-es demo indult el vele, de annak is voltak aztán olyan grafikai hibái, hogy a textúrát össze-vissza tördelte, az objektum háromszor akkora volt mint kellett volna lennie, a GUI nem jelent egyáltalán meg, stb. A demók többsége elinult majd szó szerint kifagyott. Csak a DX9SDK-ban szerepl? D3D10 demók közül a 12-es tutorial futott le normálisan referenciának megfelel?en.

Ezekután szerintem kizárt, hogy XP alatt bárki is élvezze a CrySis-t DX10-zel vagy a BioShock 2-?t. F?leg hogy a kész?l? Alan Wake már használni fogja a dinamikus árnyékokhoz a GPU multi-threadinget, hogy több magú processzor esetén gyorsabb legyen az árnyék volumok generálása. Igaz ez utobbi nem éppen DX10 feature, de akkor is nélkülözhetetlen hozzá a DX9Ex, ami megint csak Vista-s dolog.

2007-07-11 09:20
Falco:"Tény, de nem szükségszer?ség. A DirectX 8 -at nem Win 95 -ön fejlesztették mégis fut rajta. DirectX 8 -at is meg lehetett volna úgy is írni, hogy függjön az XP driver modellt?l, de nem tették."

Az XP és a 95 drivermodellje nem nagyon különbözik egymástól...legalábbis az alapelv ugyanaz a GDI interfészen keresztüli megjelenítés, mígy a WDDM a D3D motort használja.

"Mellesleg ha egyke 19 éves programozónknak sikerült valamiféle megoldást találnia akkor talán mégsem oly er?forrás igényes. "

Sikerült, de szoftveresen tudja emulálni...arról meg köztudott hogy korántsem gyors...

"OpenGL alól az effektek elérhet?k, a GPU task switching meg nem effekt.
A "Directx 10" -es effektekhez nemhogy DirectX 10, de még Windows platform sem szükséges elvileg."

Na ebbe teljes mértékben igazad van...az unified shader egységek vezérlése meg az effektek támogatása tényleg nem operációs rendszer függ?...csak mondj nekem egy olyan operációs rendszert, ami támogatja a Windows kernel 6-osok kivételével (Vista/Server 2008)....:):)
"...alapvet?en meghatározza a DirectX 10 platformfügg?ségét, mivel a kódot már nem XP-n... fejlesztették..."
Tény, de nem szükségszer?ség. A DirectX 8 -at nem Win 95 -ön fejlesztették mégis fut rajta. DirectX 8 -at is meg lehetett volna úgy is írni, hogy függjön az XP driver modellt?l, de nem tették.

"...az azonban nyilvánvaló, hogy az ehhez szükséges er?feszítések - és nem utolsósorban id? - nem fizet?dött volna ki sem a cégnek, sem a végfelhasználóknak."

Megnézném azt az argumentációt, amely bemutatja miért nem "fizet?dött volna ki" egy XP-s végfelhasználónak. Mellesleg ha egyke 19 éves programozónknak sikerült valamiféle megoldást találnia akkor talán mégsem oly er?forrás igényes.

"...futtatásával nyilvánvalóan elveszítjük a natív DX10 kód által megjeleníthet? új effektusokat..."
Ez természetesen nem igaz, legalábbis nem teljesen.
OpenGL alól az effektek elérhet?k, a GPU task switching meg nem effekt.
A "Directx 10" -es effektekhez nemhogy DirectX 10, de még Windows platform sem szükséges elvileg.
Mi ez a gagyi grafika?? :D
moonman: De azt megoldhatná, hogy minden telepítéskor logolja, hogy mely változások mentek végbe a rendszeren. Ha rendszerfájlok módosításra kerülnek akkor készül róla biztonsági mentés. Ha eltávolítom, akkor megkérdezi a Windows, hogy a programnak még néhány összetev?je megmaradt és el akarom-e távolítani az összes maradékot, vagy nem és a módosított rendszerfájlokat ezzel együtt visszaállítani.

Tudom, ott a rendszervisszaállítás, de ez azért mégiscsak kézenfekv?bb lenne.

Conan: Neked meg javaslom, hogy ha ennyit telepítesz újra, akkor egyszer csinálj egy Ghost képet a telepített Winr?l, amir?l 10 perc alatt visszaállítod, majd tegyél fel egy másikat, amit csak munkára használsz, tehát nincs össze-vissza telepítgetve.
Ezen én is gondolkodtam, de végülis alapesetben aki MEGVESZI az nem tesztelni fogja hanem már játszik vele sokat, így tuti nem lesz sok törölgetés. :) Csakhát ez az alapeset... Amúgy a MS-nek is voltak ilyen játékai, pl. AoE ami nem tünt el rendesen a gépr?l.De mondom, az én helyzetem extrém, a 20 játék havonta mondjuk így túlzás de a 10-15-öt bátran ki merem jelenteni.Azt fogom csinálni, hogy havonta átnézem az eseménynaplót hátha valami más hiba is van.

2007-07-09 14:37
Persze, minden megoldható, de egyrészt ez nem a Microsoft "dolga", másfel?l az operációs rendszer önkényesen nem törölgethet küls? alkalmazás vagy a felhasználó adataiból. A tisztességes install/uninstall megírása bizony a küls? programfejleszt?k felel?ssége.
Ennyi év fejlesztés és mégsem tudták úgy megírni a rendszert, hogy egy uninstall ne hagyjon nyomot benne.
Miért nem lehet egy szoftvert úgy eltávolítani, hogy automatikusan törl?dik minden összetev?je? Helyette még registrypucolás után sem lehetsz benne biztos, hogy nem hagyott nyomot.

Nem vagyok programozó, nem tudom megoldható lenne-e a gyakorlatban.
Hát igen ezek a viharok kifürkészhetetlenek sajnos, és nálam volt olyan eset is, hogy semmi vihar napsütéses nyár eleje volt aztán áramszünet :S hát ….. de aki pl. torrentezik vagy mást csinál és nem igen van nála kikapcsolva a gép rászánhatna párezer FT egy szünetmentesít?ért. Én 2 hete mikor 2x egymás utána vágta ki a gépet elmentem venni egyet. Nálam is csak nappal megy a gép (reggel 9-t?l este 2-ig) Azt meg viselje el ha éjjel elkezd sípolni :D
moonman: az biztos, hogy ez egy kicsit extrém használat :) a többihez viszont nem értek, nem tudom melyik játék, hogy van megírva, biztos, hogy ez is okozhatja ezt a problémát.Ett?l függetlenül én nem tudnék Windows op. rendszeren kívül mást használni, megszoktam, szeretem minden hibájával együtt.A Halo2-re visszatérve pedig akkor jól tudtam, hogy jogtiszta használat mellett nem fut XP-n, csak ennyit akartam.Artus kolléga félrevezetett, nem pedig az MS. :) A DX9 vs. DX10 vitában, én egyértelm?en az üzletet látom, nem érdeke az MS-nek XP-re er?szakolni a DX10-et, ezen nem lep?dök meg, a Halo2 is hasonló okok miatt lett Vistara írva, gondolom.Hogy a Halo2, DX10-re lett-e írva azt most nem tudom megnézni, mivel kedvenc gamer oldalam, átmenetileg halott.Ott minden játék gépigénye teljes részleteséggel le van írva.Azonban ha XP-n fut egy kis okoskodással, akkor fennál a lehet?sége, hogy nem, viszont esküszöm, így volt beharangozva az egyik népszer? PC-s játékokkal foglalkozó újságban, nem hittem volna, hogy ott is írhatnak hülyeséget... :S
A szöveg korlátozás miatt a 2. mondat elejér?l kimaradt, hogy olyat tapasztaltam, hogy.. :)

2007-07-09 12:40
Ha ilyen intenzíven van telepítve/törölve program, akkor még hihetnék is benne. Ez nyilvánvalóan nem normális használat, így hát el?fordulhatnak problémák. Ett?l függetlenül, ha a program telepít?je jól van megírva, a Windows szerintem nem lassul be meg nem esik szét t?le.

Az áramszünetes történetnél szerintem az volt, hogy megsérült az éppen betöltött registry hive (user profil) és mivel azt nem tudja betölteni, a default-ot használta.

Oldalak közti navigálás