Door Peter de Boer

Doktersteam

DirectX 10 voor Windows XP: de (on)mogelijkheden

20-06-2007 • 12:23

211

Multipage-opmaak

Inleiding

DirectX 10 heeft sinds de lancering van de eerste bètaversie exclusief op Windows Vista gewerkt. Velen menen dat Microsoft gamers op die manier wilde dwingen over te stappen naar Vista en dat was voor Beyond3d reden om een en ander onder de loep te nemen.

DirectX 10-logoEen van de belangrijkste 'bewijzen' voor de theorie dat Microsoft met Direct3D 10 - het grafische gedeelte van DirectX 10 - de verkopen van Vista een zetje wilde geven, heeft een historische achtergrond. Microsoft heeft in het verleden regelmatig producten uitgebracht waarvan het bedrijf zei dat ze niet zouden werken op een bepaalde Windows-versie. Verschillende hackers hebben later deze claims onderuit weten te halen. Zo ook met DirectX: toen versie 5 van deze api uitkwam werd Windows NT 4.0 volgens Microsoft niet ondersteund. Verschillende mensen hebben echter geclaimd dat ze toch DirectX 5 werkend hebben gekregen op NT4. Hoewel bepaalde delen van de Direct3D-softwarebibliotheek aan de praat gekregen zijn, is het echter nooit iemand gelukt volledige hardwareversnelling met Direct3D op NT4 aan de praat te krijgen. De reden hiervoor is simpel: het drivermodel van NT4 heeft geen enkele ondersteuning voor 3d-technologie.

Beyond3D-logoMicrosoft wilde in de kernel van Windows 2000 volledige ondersteuning voor 3d integreren, maar de meeste spelfanaten gebruikten enkele jaren geleden Windows 95 of 98. DirectX 5 was daarom ook gericht op deze versies van Windows. Om niet het wiel volledig opnieuw te hoeven uitvinden heeft Microsoft grote delen van de Windows 9x-3d-driverarchitectuur hergebruikt voor Windows 2000. Deze beslissing werd ondersteund door fabrikanten van grafische kaarten, omdat zij hun drivers zo niet volledig hoefden te herschrijven. De beslissing had echter ook een belangrijk nadeel: het drivermodel van Windows 9x was ontworpen voor een besturingssysteem dat directe toegang tot hardwarecomponenten toestaat. De NT-lijn stond directe toegang tot de hardware vanwege de veiligheid niet toe. Er moest tussen de hardwareaansturing en de 3d-drivers dus een extra laag gecreëerd worden, die uiteraard voor meer overhead zorgt. Ook in XP is deze laag nog aanwezig, en dat levert spelontwikkelaars slapeloze nachten op. Dit gelaagde drivermodel kan de toename van brute gpu-kracht tegenwoordig echter niet meer bijbenen, en Microsoft werd bij de ontwikkeling van Vista dus gedwongen het hele drivermodel op de schop te nemen.

Het nieuwe drivermodel

Voor Vista heeft Microsoft een volledig nieuw drivermodel ontworpen. Schematisch ziet dat er als volgt uit:

Drivermodel van XP vs. Vista
Drivermodel van XP vs. Vista (klik voor grotere afbeelding)

Op het eerste gezicht lijkt het nieuwe model van Vista complexer. Hardwarefabrikanten moeten immers naast een kernelmodedriver ook een usermodedriver schrijven. De complexiteit valt echter wel mee, zo blijkt in de praktijk. De beschikbare functies in de driver worden over de twee drivers verdeeld, op een manier die vergelijkbaar is met de Installable Client Drivers van OpenGL. Het grootste voordeel van deze tweedelige opzet is de snelheidswinst: de usermodedriver beslist welke gegevens naar het kernelmode-gedeelte gestuurd worden, en doet dat op een manier die de gpu begrijpt. Onder Windows XP stuurt de Direct3D-runtime de gegevens via een eigen protocol naar de kernel. Dat betekent dat er overhead is, doordat de gegevens gedecodeerd moeten worden naar een formaat dat de gpu herkent. Het mag nu duidelijk zijn waarom de nieuwe Direct3D-runtime niet zonder meer onder XP zal werken: de kernelinfrastructuur is volledig anders opgebouwd.

Datastromen in XP en Vista
Datastromen in XP en Vista (klik voor grotere afbeelding)

Porten of interpreteren?

Nu het duidelijk is dat Direct3D 10 in zijn huidige vorm niet geschikt is voor andere besturingssystemen dan Vista, is het tijd om naar mogelijke oplossingen te kijken. Direct3D 10 is immers 'slechts' software die ontworpen is om bepaalde hardware aan te sturen. Het moet dus in theorie mogelijk zijn om een implementatie voor andere besturingssystemen te schrijven. De vraag is uiteraard wie die taak op zich zal nemen.

*Het porten van Direct3D 10 naar Windows 2000 en XP

Omdat Microsoft zowel Windows 2000 en XP als Vista heeft ontwikkeld, zijn veel mensen van mening dat het voor het bedrijf uit Redmond triviaal moet zijn om Direct3D 10 te porten naar XP. Vroegere versies van DirectX zijn ook in een later stadium wel beschikbaar gesteld voor oudere besturingssystemen. Voor DirectX 9 en ouder was dit ook relatief eenvoudig: het onderliggende drivermodel bleef steeds gelijk. We hebben inmiddels gezien dat dit niet opgaat voor het drivermodel van versie 10. Een simpele update voor XP behoort dan ook niet tot de mogelijkheden. Microsoft zou een patch uit moeten brengen die een groot gedeelte van de kernel aanpast. Naast een zeer grote hoeveelheid werk voor de programmeurs van Microsoft brengt dit nogal wat risico's met zich mee. Het updaten van de kernel van een vijf jaar oud besturingssysteem zou grote gevolgen voor bestaande applicaties kunnen hebben, iets waar gebruikers van XP natuurlijk niet op zitten te wachten. Hoewel het geschikt maken van Direct3D 10 voor XP technisch gezien mogelijk is, is het dus zeer kostbaar en risicovol.

*Direct3D 10 commando's toevoegen aan Windows 2000/XP

Het volledig porten van Direct3D 10 naar Windows 2000 of XP blijkt dus niet zo eenvoudig te zijn. Is het dan niet mogelijk D3D 10-commando's toe te voegen aan XP zonder de kernel te updaten? Het pre-'versie 10'-model maakte het mogelijk dat verschillende Direct3D-versies met eenzelfde driver konden werken: een driver die geschikt is voor versie 9 kan ook overweg met commando's van oudere versies. Zou er geen gebruik gemaakt kunnen worden van deze flexibiliteit om zo een aparte Direct3D-versie voor Windows XP uit te brengen?

Windows XP met Direct3D 10 uitbreiding
Windows XP met Direct3D 10 uitbreiding (klik voor grotere versie)

Technisch gezien zijn er mogelijkheden, maar deze optie vergt forse aanpassingen van verschillende partijen. Microsoft moet de huidige Direct3D-runtime updaten en fabrikanten van grafische kaarten moeten al hun huidige XP-drivers bijwerken. Gezien het oude drivermodel van Windows XP zal 'XP D3D 10' net iets anders werken dan de Vista-versie. Het schrijven van een driver voor deze versie zal ook aanzienlijk complexer zijn omdat verschillende onderdelen - zoals de virtual video memory manager - niet beschikbaar zijn in XP. Deze functionaliteit zal dus in de driver zelf opgenomen moeten worden. De extra overhead die dit met zich meebrengt zal de performance van Direct3D 10 onder XP niet ten goede komen.

*OpenGL gebruiken

Alle NT-versies van Windows bieden standaard ondersteuning voor OpenGL. De clientdrivers draaiden altijd al in usermode, net als de D3D 10-drivers in Vista. De communicatie tussen usermode en kernelmode is niet gebaseerd op een protocol van Microsoft, dus het moet mogelijk zijn om een OpenGL-driver extra functionaliteit te laten ondersteunen. Met andere woorden: een OpenGL-driver kan Direct3D 10-specifieke functionaliteit van een grafische kaart onder XP ondersteunen. De Direct3D 10-runtime zou zonder grote aanpassingen in staat moeten zijn om met een XP-usermodedriver te communiceren. De driver zou functioneel gelijk zijn aan de Vista-variant maar de communicatie met de kernelmodedrivers zou via OpenGL-kanalen verlopen, in plaats van langs de nieuwe Vista-route. Helaas heeft deze oplossing hetzelfde grote nadeel als de vorige: de fabrikanten zullen alle functionaliteit van het Vista-graphics kernel subsystem in hun eigen drivers moeten implementeren.

Windows XP met Direct3D 10 via OpenGL

*Fabrikanten brengen hun eigen implementatie uit

Iedere oplossing die we tot nu toe bekeken hebben zal extra werk van Microsoft vragen. Hoewel dat niet onmogelijk is, lijkt de kans dat dat gaat gebeuren niet erg groot. Wie zou er nog meer in staat zijn om D3D 10 naar XP te brengen? De fabrikanten van gpu's hebben reeds de beschikking over de code van de drivers. Ze hebben echter geen toegang tot de broncode van de kernel- en de usermoderuntime. Het usermode-gedeelte zouden ze, zoals gezegd, in de driver kunnen implementeren, maar de kernelzijde moet ook geschikt gemaakt worden. De fabrikanten kunnen ervoor kiezen om rechtstreeks de betreffende dll-bestanden te patchen. Dat is echter zowel technisch als juridisch geen eenvoudige optie. Ook omdat dit enorm veel tijd zal kosten - en er gedurende de ontwikkeling waarschijnlijk steeds meer Vista-systemen zullen komen - zullen de fabrikanten terughoudend zijn met investeringen in een eigen Direct3D-implementatie voor Windows XP.

Windows XP met Direct3D 10 via leverancier hardware
Windows XP met Direct3D 10 via leverancier hardware(klik voor groter)

De toekomst

*Een wrapper

De mogelijke oplossingen waarbij werk van Microsoft of de fabrikanten van gpu's nodig is, lijken nog ver weg. Er is echter nog een andere mogelijkheid, die realistischer is: een wrapper. Voor XP-ondersteuning moet hiervoor Direct3D 9 of OpenGL gebruikt worden. Omdat Direct3D 9 nogal wat features mist ten opzichte van versie 10 zou het gebruik van versie 9 onzinnig zijn. De uitbreidingsmogelijkheden van OpenGL bieden wel mogelijkheden.

Windows XP met een D3D10-naar-OpenGL wrapper

Er zijn op dit moment twee teams aan het werk met Direct3D 10. Als eerste het Wine-team, dat er een Google-Summer-of-code-project van heeft gemaakt. Wine is echter bedoeld voor Linux, dus de focus van het team zal niet op D3D 10-ondersteuning voor XP liggen. Een ander initiatief, van het bedrijf FallingLeaf, heeft wel XP als prioriteit. Een eerste alphaversie van de Alky Compatiblity Libraries for Windows XP is inmiddels beschikbaar. Volgens het bedrijf moet het met deze libraries mogelijk zijn de Direct3D 10-voorbeelden uit de sdk te draaien. Helaas is de software verre van af. Zelfs voorbeelden met slechts een enkele polygoon op het scherm geven al een foutieve output. De weg naar volledige ondersteuning met de Alky-software lijkt dus nog heel lang.

Driehoek via Direct3D 10 op Vista Driehoek via Direct3D 10 op XP via Alky
Verschillen tussen de Vista- en 'Alky'-versies van D3D 10

*Conclusie

Verschillende mogelijkheden voor de ondersteuning van Direct3D 10 op Windows XP zijn de revue gepasseerd. Een conclusie is al snel te trekken: zonder hulp van Microsoft en de fabrikanten van grafische kaarten zal volledige ondersteuning heel moeilijk worden. Het bouwen van een wrapper is vanuit technisch oogpunt een mooie oplossing, maar zal voor de massa waarschijnlijk geen afdoende oplossing bieden. In de tijd die nodig is om een volledig werkende wrapper te ontwikkelen zullen bovendien steeds meer mensen de overstap naar Vista maken, waardoor de noodzaak voor een wrapper steeds kleiner wordt. Toch zal de geïnvesteerde tijd waarschijnlijk vruchten afwerpen: de opgedane ervaring kan bijvoorbeeld goed helpen bij het porten van Direct3D 10 naar Linux.

Reacties (211)

211
181
68
54
11
50
Wijzig sortering
Wat ik niet snap is dat Microsoft zelf niet met zon artikel naar buiten komt. Direct tijdens de release van Vista. Dit neemt een hoop vragen en ergenis weg. Gelukkig heb ik al gekozen voor Windows Vista

[Reactie gewijzigd door et36s op 23 juli 2024 16:22]

Deze informatie is ook terug te vinden in de verschillende Windows SDK's. Echter de informatie hierin is meestal zeer technisch van aard. Daarnaast is de informatie zeer op de development van drivers ge-ent.

Echter de meeste developers zijn voornamelijk geinteresseerd in de DirectX/NDA SDK, dus het gebruikt van DirectX.

En zelfs als er geen architectuur wijziging aan te grondslag lag, heeft microsoft nog steeds recht om nieuwe technologien alleen in nieuwe besturingssystemen te implementeren. Microsoft bied nu alleen nog support voor Windows XP er wordt niet meer aan ontwikkelt (behalve voor bugfixes).

Maar er is nog een andere reden waarom Microsoft zelf geen wrapper voor DirectX op XP zal uitbrengen. Elke oplossing zal namelijk gezocht moeten worden in emulatie (wrapper) laag. Emulatie kost CPU vermogen en dus zal de game ook langzamer worden. Een game die zwaar op DirectX 10 leunt zal daarom een lagere framerate hebben dan dezelfde game op Vista. En snelheid is in steeds meer (online) multiuser games (QuakeWar) van groot belang. Het gevolg: XP Users gaan klagen dat DirectX 10 op XP te langzaam is. Microsoft kan dus dit simpelweg niet tot een goed einde brengen.
Als MS met zo'n verhaal komt krijg je toch alleen maar reacties over MS-bullshit en dergelijke. Goed dat een onafhankelijke bron als Tweakers er eens goed naar gekeken heeft :)
De bron is Gallery3D, ere wie ere toekomt IMHO.
Iets als Graphics APIs in Windows Vista, ~half jaar voor launch bedoel je? ;) Behandelt geloof ik zo'n beetje hetzelfde op de alternatieven die MS had kunnen nemen na, wat logisch is gezien het feit dat de beslissing allang genomen was.
Blij dat tweakers hier aandacht aan heeft besteedt! Je leest zoveel de laatste tijd over de "streek" die microsoft heeft geleverd, door iedereen te dwingen om dx10 te gebruiken. Maar als ik dit zo lees verander ik toch wel van gedachten..

Is het trouwens niet mogelijk om de hele review in de stijl van de eerste pagina te maken? (just curious)
Eh...wat praat jij nu voor onzin? OGL is beschikbaar voor meerdere systemen maar je kan geen Windows versie van een spel zonder meer op OSX of Linux draaien zelfs als er al OGL op dat systeem staat. Het is geen Java.
Anoniem: 28557 @Tijger20 juni 2007 19:57
Maar het porten van een OGL-Windows spel is wel vele malen eenvoudiger dan het porten van een DirectX-Windows spel.
Dat valt wel mee als we naar de console ports kijken blijkbaar.
Dat valt wel mee als we naar Doom3, Quake, Unreal Tournament... kijken. Allemaal OpenGL spellen.
Welke consoles gebruiken OpenGL dan?
PS3 schijnt, maar dat is hoogst waarschijnlijk wel een speciale versie, die heel veel aanpassingen heeft ondergaan om optimaal met de ps3 hardware om te kunnen gaan.
je snapt het niet.. porten naar de (Windows) PC van console spellen valt wel mee blijkbaar. Ik hoor de game industrie ook niet zeuren over DirectX.
Nintendo GameCube, Wii, DS en Sony PSP gebruiken een afgeleide van OpenGL.
Maar als we nou even terug gaan naar het 'waarom?'. Waarom zou men überhaupt heel veel tijd en geld in D3D 10 op Windows XP willen steken? Toen Windows XP net uit was, was het toch ook zo dat veel spellen en andere applicaties wel op Windows 2000 draaiden maar niet op Windows XP? En dat is toen toch ook binnen afzienbare tijd allemaal verholpen? Als de nieuwste spellen voor Windows Vista met D3D 10 worden geschreven dan denk ik dat het gewoon een kwestie van tijd is voordat we toch weer met z'n allen op de nieuwe Windows overstappen, dat hebben we in het verleden immers al bewezen met de overstap naar XP. :)
[quote]Toen Windows XP net uit was, was het toch ook zo dat veel spellen en andere applicaties wel op Windows 2000 draaiden maar niet op Windows XP[/qoute]

jij heb het er over dat er spullen op een nieuw OS niet werkte , en op het oude wel

nu hebben we het min of meer over het tegenovergestelde.
Bij de _release_ van XP waren er al werkende drivers en applicaties genoeg.
Misschien had je met de installatie nog even moeten wachten tot de eigenlijke release ;)
Gek dat het bij jou over geld gaat. Er zijn tonnen developers die gratis en voor niets wilen zorgen dat DX10 op windows XP kan draaien.

Het artikel kan in twee woorden samengevat worden: het kan. Het kan technisch allemaal, maar we hebben de broncode niet, dus helaas. En daarom modderen de mensen van Alky en Wine maar wat aan. Ik wens hen veel succes!
Anoniem: 175233 @Parasietje22 juni 2007 14:47
Helaas, je hebt blijkbaar de essentie van het artikel niet begrepen. Het gaat niet om broncode.

Natuurlijk, het kan in XP ingebakken worden.... maar alleen als je een complete Vista omgeving in XP gaat zitten schrijven. Dat is natuurlijk niet zinvol.
Glaanie Pricewatch Content 20 juni 2007 12:59
Ik ben blij dat dit artikel er is, ik krijg dagelijks wel mensen in de winkel die vinden dat MS een kutbedrijf is omdat ze DX10 exclusief voor Vista hebben uitgebracht. In dit artikel worden nu de technische en praktische bezwaren goed en duidelijk uitgelegd, bedankt hiervoor :)
Neemt niet weg dat MS nog steeds wel aan die beschrijving die je hierboven geeft voldoet en die ik wegens angst voor het moeten spoelen van mijn mond niet durf te herhalen :)
Maar het begint met een k...........

[Reactie gewijzigd door mxcreep op 23 juli 2024 16:22]

Interessant artikel en waarschijnlijk een prima beschrijving van het Vista driver model. Maar toch gaan de 'harde' conclusies (DX10 kan niet zomaar op XP draaien) er voor mij absoluut niet in. In theorie is DX10 voor user space applicaties niets meer dan een API, en heeft het niets met het onderliggende driver model te maken. Met andere woorden, de inspanningen om DX10 op XP/Vista/Windows 9x/whatever te laten werken zullen sowieso verdeeld zijn over Microsoft en over de driver-ontwikkelaars. Het maakt niets uit wie er in welke situatie meer of minder werk zou moeten doen, nu is er gewoon voor gekozen DX10 zo op te zetten dat het vereist dat er een kernel-space en een user-space driver interface is, maar voor hetzelfde geld had MS de link tussen de user-space API en de driver interface zo op kunnen zetten dat je met niet al te grote inspanningen beiden kunt ondersteunen. We hebben het hier wel over een miljardenbedrijf dat het schijnbaar wel prima vond om DX10 compleet om te gooien en dus een heleboel code te herschrijven. Even nadenken over je userspace-kernel space interface en deze zo opzetten dat je ook met een 100% kernel space driver (+DX10 protocol) kunt werken zou voor MS zeker geen onmogelijkheid moeten zijn. Zouden de driver ontwikkelaars natuurlijk wel hun drivers nog DX10/XP en DX10/Vista-ready moeten maken maar in principe is er dus geen reden waarom MS dit onmogelijk zou moeten maken.

Kortom, ik ben absoluut niet overtuigd van het feit dat DX10 niet op XP zou kunnen draaien. Als er daadwerkelijk technische beperkingen in de DX10 implementatie zitten die het onmogelijk of enorm veel werk maken om DX10 ook met het XP driver model te laten werken, dan heeft MS dit bewust zo ontworpen... Het feit dat zoiets als Halo DX10-only is bevestigd mijn vermoeden dat MS een hele duidelijke reden heeft om DX10 niet te laten werken op XP, en het driver model heeft daar niks mee te maken.
nogmaals, who cares? Je gaat toch ook niet zeuren dat ID software DOOM III zo had kunnen aanpassen dat het technisch gezien op een super nintendo zou kunnen draaien maar dat niet heeft gedaan? Een nieuw spel op een oude computer spelen = niet vooruit te branden, dus het heeft geen zin.
Anoniem: 201824 @OddesE22 juni 2007 11:57
XP is niet 'oud', XP draait goed. En een spelcomputer zal niet echt veel z'n hardware omwisselen ;) Bij een pc zal dat wel gebeuren. Leuke vergelijking, maar hij klopt niet.
AH,

Dus een auto die 5 jaar oud is hoeft ook maar niet meer over de nieuwe brug heen te kunnen? tjah nieuwe brug, is alleen voor nieuwe auto's meneer.

Als de auto het nog prima doet, waarom dan kunstmatig de brug afschermen voor alleen nieuwe auto's?
Ik ben geen Windows fanaat, maar heb me vaak geërgerd aan het stug vasthouden aan backward compatibility. Op zich kan ik begrijpen dat MS deze stap zet, om eindelijk weer een stap voorwaarts te kunnen zetten.

Zoals al eerder gezegd, spellen die uitkomen voor een nieuwe DX versie zijn niet vreemd, alleen is deze DX versie alleen geschikt voor Vista, dus zul je (als je de persé de nieuwste spellen wilt spelen) overmoeten naar een nieuw OS.

Persoonlijk vind ik dat niemand verplicht wordt om die overstap te maken, of om überhaupt alleen MS te gebruiken. Zelf ben ik gebruiker van Windows en nu ook bezig om Linux te proberen. Ik zie wel wat voor mij het beste werkt, de meeste functionaliteit biedt die ik belangrijk vind, en dat alles voor een redelijke prijs.
Prachtige review ! Nu weten we tenminste waarom het zo is. Mooi technisch onderbouwd ook. Ik vind het alleen jammer dat er zoveel mensen hier reageren die het nog eens zoveel beter weten :?
Aan de ene kant is het schandalig dat MS je dwingt om zo het vreschrikkelijke Vista te gebruiken, ik wil XP blijven gebruiken en het is kut dat ik niet van DX-X gebruik kan maken. En ik vraag me toch serieus af of het toch niet echt mogelijk is...

Aan de andere kant: waarom Windows zo log is, is omdat het allemaal oude meuk moet ondersteunen. Op zich is het slim om dat eens overboord te kieperen en iets nieuws te beginnen. Alleen vind ik wel dat als je een spel koop je beide versies moet kunnen krijgen, en net als andere software.

Ik bedoel te zeggen dat Vista niet XP opvolgt, maar dat ze de komende jaren naast elkaar zullen bestaan. Ik denk dat het wel mogelijk moet zijn. Dan heeft de gebruiker een goede keuze/alternatief
Anoniem: 98889 20 juni 2007 20:51
Allemaal leuk... en in het artikel wordt nog eens aangegeven waarom het zogezegd niet kan omdat er bepaalde dingen compleet anders gedaan zijn.

Wat ik in dit en andere artikels erover telkens mis is de vraag of die veranderingen echt nut hebben, echte verbeteringen als gevolg hebben of noodzakelijk waren.

En voor zover ik dat kan inschatten is mijn mening : nee.
Waarom zou MS voor Vista het hele driver model op de schop gooien als dat niet nodig zou zijn? Denk je dat ze het refactoren van 10 jaar oude code en vervolgens Windows en tig duizend apps tot in den treure toe testen of alles nog goed werkt gewoon een lollige bezigheid vinden?

Ik zie een grote operatie om de rotte fundering van een wolkenkrabber te herstellen (rot omdat het vroeger een bescheiden studentenflatje was waar elk jaar een verdieping bovenop is gebouwd) terwijl alle bewoners klagen dat dat toch allemaal onzin is en waarom die 5 extra verdiepingen er niet gewoon ook bovenop geplempt kunnen worden. De uitleg van de architect over zwaartekracht e.d. wordt niet begrepen en men is er van overuigd dat het puur gedaan wordt om ze een loer te draaien... techno-paranoia...
Dat staat wel gewoon in het artikel hoor, even de inleiding lezen:
(..)het drivermodel van Windows 9x was ontworpen voor een besturingssysteem dat directe toegang tot hardwarecomponenten toestaat. De NT-lijn stond directe toegang tot de hardware vanwege de veiligheid niet toe. Er moest tussen de hardwareaansturing en de 3d-drivers dus een extra laag gecreëerd worden, die uiteraard voor meer overhead zorgt. Ook in XP is deze laag nog aanwezig, en dat levert spelontwikkelaars slapeloze nachten op. Dit gelaagde drivermodel kan de toename van brute gpu-kracht tegenwoordig echter niet meer bijbenen, en Microsoft werd bij de ontwikkeling van Vista dus gedwongen het hele drivermodel op de schop te nemen.
dus als ik het goed begrijp:

OpenGL bestaat, en de hele wereld gebruikt dit. Gamex bouwen voor verschillende OS-en is gemakkelijk omdat de video laag netjes abstract en platform onafhankelijk is.

MS besluit dat OpenGL niet voldoen aan de customer lock-in en bouwt zelf iets. (directX), ze maken hier helaas wat ontwerp fouten in, omdat ze dan in the short run wat meer performance kunnen bereiken, wat natuurlijk helpt om je product in de markt te zetten,

Nu ze tegen de limitaties aan lopen van hun keuze's (fouten imho), kijken ze het trucje maar weer van openGL af, maar zo dat ze er ook nog eens een nieuw OS voor nodig hebben

Tis niet precies openGL, want de openGL manier had volgens dit artikel wel directX10 features kunnen toevoegen aan winXP.

Aka, de game developpers, de users en de grafische kaart fabrikanten zijn genaaid door MS, puur en alleen omdat ze MS geloofden dat directX inderdaad een goede keuze was.

De non-windows gebruiker verliest zowiezo als het om MS gaat.
Anoniem: 133470 @killercow20 juni 2007 18:17
MS besluit dat OpenGL niet voldoen aan de customer lock-in en bouwt zelf iets.
Dat is niet waar. Direct3D stamt uit de begintijd van de 3d-acceleratie. Toen was OpenGL nog geen optie voor thuispc's omdat het simpelweg te zwaar was, en de consumentenhardware ook bijna geen enkele functionaliteit ondersteunde.
3d-fabrikanten kwamen met eigen oplossingen als Glide, PowerSGL, minigl etc.
Maar dat was allemaal vendor-specific, dus developers werden gek.
Microsoft maakte toen een hardware-onafhankelijke tussenlaag, gericht op die klasse van hardware.

Inmiddels is de hardware zo ver doorgegroeid dat OpenGL wel gewoon kan draaien op een standaard PC, en Direct3D is OpenGL zelfs voorbijgesneld in functionaliteit. Maar Microsoft heeft echt Direct3D niet bedacht om je te pesten.
Nu ze tegen de limitaties aan lopen van hun keuze's (fouten imho), kijken ze het trucje maar weer van openGL af,
Absoluut niet. In een diagrammetje lijkt het misschien op elkaar, maar Direct3D 10 zit op een compleet andere manier in elkaar dan OpenGL.
Sterker nog, OpenGL is tegenwoordig slechts een lege huls. Er wordt bijna alleen nog maar gebruik gemaakt van extensies, en die zijn juist weer afgekeken van de Direct3D-API (ik noem een GLSL, of de vertexbufferobjects).

Op dit item kan niet meer gereageerd worden.