Windows 7 krijgt softwarematige Directx 10-ondersteuning

Microsoft heeft een Windows 7-api gepresenteerd waarmee Directx 10-software zonder gpu-ondersteuning kan worden uitgevoerd. Het bedrijf repareert met de Warp10-bibliotheek een van de voornaamste tekortkomingen van Directx 10.

Het Windows Advanced Rasterization Platform wordt onderdeel van de Directx 11-software in Windows 7 en moet ervoor zorgen dat Directx 10- en Directx 10.1-software voortaan ook volledig functioneel is als hardwareondersteuning voor bepaalde features ontbreekt. Zo levert de Warp10-software onder andere ondersteuning voor softwarematige multi-sample anti-aliasing en anisotropic filtering. Onder Windows Vista heeft Directx 10-software nog Directx 10-hardware nodig om alle toeters en bellen weer te geven. Overigens zal Directx 11 zowel op Windows 7 als op Vista draaien.

Directx-logoWeliswaar kunnen ook oudere gpu's worden ingezet voor het renderen van bijvoorbeeld Directx 10-games, maar bepaalde effecten moeten dan genegeerd of versimpeld worden. Voor de Warp10-bibliotheek is echter uitgegaan van de 'no caps'-filosofie: de Directx-functionaliteit moet niet langer hardwareafhankelijk zijn. De Warp10-software is zelfs in staat om Directx 10-games te laten werken als er geheel geen gpu in een systeem aanwezig is.

Microsoft heeft de nieuwe software inmiddels met behulp van Crysis gebenchmarkt. Het ontbreken van een gpu leverde volstrekt onbruikbare framerates op, maar omdat Warp geoptimaliseerd is voor multicoreprocessors, hoefden de snelste courante cpu's in elk geval niet voor een Intel-igp'tje onder te doen. De conclusie dat Windows 7 dus geen igp meer nodig heeft is weer wat voorbarig: uit dezelfde test bleek ook dat een Radeon HD 2400Pro, die over grofweg dezelfde gpu beschikt als de igp van AMD's 780G-chipset, ruim vier keer beter presteert dan een op 3GHz geklokte Core i7-quadcore.

Prestaties Crysis in Directx 11 met Warp
Geforce 8400GS 33,9
Radeon 2400Pro 29,8
Core i7 'octocore' @ 3GHz 7,4
Penryn quadcore @ 3GHz 5,7
Intel DX10 igp 5,2
Xeon octocore @ 2GHz 4,7
Penryn dualcore @ 3GHz 3,5
AMD FX74 quadcore @ 3GHz 3,4
Phenom 9550 quadcore @ 2,2GHz 3,0
Core 2 Duo @ 2,6GHz 2,8
Core 2 Duo @ 2,4GHz 2,6
Core 2 Duo @ 2,1GHz 2,2
Resolutie: 800x600, geen aa/af, bron: Microsoft

Door René Wichers

Eindredacteur

28-11-2008 • 18:18

85

Reacties (85)

85
81
15
4
0
1
Wijzig sortering
oke, zo te zien heeft hierboven niet iedereen een goed beeld van wat er bedoelt word.

stel, je hebt een specificatie, ( die noemen we 1.0 ) en daarin zitten de volgende functies.
a, b, c, d, e, f

hiervoor word hardware gemaakt, en deze hardware kent de functies a, b, c, d, e, f

nou komt specificatie 1.1 of 2 of 3 uit
met nieuwe functies genaamt
g, h, i, j, k

Zonder deze nieuwe software ware laag, zou je nieuwe hardware moeten kopen, om de nieuwe funties te kunnen gebruiken.

Met deze software laag, worden de functies welke ontbreken in de software opgelost.
dit is uiterraard trager, maar het zorgt er wel voor dat spel ontwikkelaars niet meer meerdere renderpaden hoeven te schrijven voor elke versie. Ze schrijven iets voor versie 2, en de functies welke niet in de hardware zitten, worden softwarematig opgelost.
Je verhaal klopt deels, behalve de laatste alinea. Dit is niet voor de eindgebruiker. Je kunt bepaalde dingen die niet worden ondersteund door de videokaart zomaar even oplossen in software - meestal is dat alles of niets. Stel de videokaart ondersteunt geen floating point framebuffers, en de game vraagt daar wel om (de API is immers geïnstalleerd en er zijn geen caps, dus die kan er vanuit gaan dat het ondersteund wordt). Als je dat wilt afvangen door software betekent dat dat je vrijwel alles in software moet gaan renderen, terwijl je videokaart geen zak meer te doen heeft. Daar zit een gamer helemaal niet op te wachten.

Het is meer om de een platform te creëren dat altijd werkt, ongeacht de hardware. Handig voor developers dus, of voor die mensen die gewoon even iets willen draaien zonder dat performance echt boeit.
is toch precies wat ik ook al zei ?
wat niet in de video kaart zit, zal geemuleerd worden.

neem dx10 vs 10.1
wat de videokaart mist van 10.1 zal geemuleerd worden, en wat er wel in werkt, zal in hardware draaien.

en een gamer zal toch altijd de nieuwste videokaart hebben.

ik zie nog een voordeel.
ms zou nu al dingen in software kunnen implementeren welke pas over 5 jaar in hardware zullen zitten, en nu toch al door bv CAD software gebruikt kunnen worden.
De hardware boeren kunnen dat stukje bij beetje naar voledige ondersteuning toewerken, zonder dat de software op de schop hoeft. en toch zal de software stukje bij beetje sneller dit kunnen bieden.
Nou ja het is niet direct duidelijk uit je posts, maar ik heb het idee dat je een belangrijk punt mist.
wat de videokaart mist van 10.1 zal geemuleerd worden, en wat er wel in werkt, zal in hardware draaien.
Het is niet zo dat die losse features zomaar op zichzelf geëmuleerd worden. Als jij dx10 hardware hebt, en je draait een 10.1 game, dan is er een vrij grote kans dat je helemaal niets aan je hardware hebt, ookal gebruikt de game maar 1 feature van de 10.1 API. Want om die ene feature te kunnen emuleren moet alles geëmuleerd worden, en dus ook het 10.0 gedeelte.

Praktische voorbeelden:
• 10.1 vereist 32 bit floating point framebuffer support, 10.0 niet. Als een game dus dat gebruikt, kun je je hardware verder niet inzetten om naar een dergelijke buffer te renderen.
• 10.1 ondersteunt shader model 4.1 met nieuwe instructies. Als je zo'n instructie gebruikt, zoals gather-4 (waarmee je in een keer 4 samples uit een single channel texture kunt doen), dan kan de CPU niet die ene instructie emuleren voor de GPU, en zal de hele shader (en waarschijnlijk ook de rest van de shaders) dus geemuleerd moeten worden.

[Reactie gewijzigd door .oisyn op 24 juli 2024 08:52]

artikel zegt "maar bepaalde effecten moeten dan genegeerd of versimpeld worden". Ofwel als je ergens met wat dan ook zit wat hardware matig niet ondersteund kan worden worden deze instructies vertaald naar instructies die wel hardwarematig ondersteund worden. En indien dit echt niet mogelijk is worden effecten genegeerd. Het komt er dus op neer dat dx10 vertaald word naar dx9 en de beeldkwaliteit zal dus een klap krijgen.

Het probleem zit hem erin volgens mij dat men nu binnen een jaar dx11 wilt lanceren en dat men nu nog en in dx9 en in dx10 bezig zit. Moest men gewoon doordoen dan zou men moeten gaan releasen in dx9 en dx10 en dx11 en mss nog dx10.1. Dat lijkt mij vrij lastig voor game ontwikkelaars.
Dan lees je niet goed
Weliswaar kunnen ook oudere gpu's worden ingezet voor het renderen van bijvoorbeeld Directx 10-games, maar bepaalde effecten moeten dan genegeerd of versimpeld worden. Voor de Warp10-bibliotheek is echter uitgegaan van de 'no caps'-filosofie: de Directx-functionaliteit moet niet langer hardwareafhankelijk zijn. De Warp10-software is zelfs in staat om Directx 10-games te laten werken als er geheel geen gpu in een systeem aanwezig is.
Als je effecten negeert verlies je sowieso functionaliteit. En dat woord "echter" geeft aan dat de Warp10 librarie geen functionaliteit zal negeren, itt DX10 hacks die DX10 op D3D9 hardware proberen te emuleren (en daarbij dingen die niet kunnen te versimpelen of gewoonweg niet uit te voeren). Bij het gebruik van de Warp10 library zal de beeldkwaliteit echter niet achteruit gaan als je de juiste hardware niet hebt om het beeldje te genereren.
Er zal vast een manier voor zijn, maar hoe hebben ze het voor elkaar gekregen om op een systeem crysis te draaien, zonder videokaart? Ik bedoel, dan is het systeem toch niet aangesloten op het beeldscherm? Of zijn daar speciale moederborden voor, die de cpu het beeld laten renderen?

Verder lijkt het me eigenlijk niet heel interessant. Voor games heb je er denk ik vrij weinig aan... dx10 is al niet zo heel snel, laat staan als je de effecten eerst nog weer door software moet laten genereren. Verder kan ikzelf eigenlijk niet veel applicaties verzinnen die met Directx werken?
Dit is dan ook niet bedoeld om zware games op te draaien, zie de quote hierboven in m'n vorige reactie :)
Er zal vast een manier voor zijn, maar hoe hebben ze het voor elkaar gekregen om op een systeem crysis te draaien, zonder videokaart? Ik bedoel, dan is het systeem toch niet aangesloten op het beeldscherm? Of zijn daar speciale moederborden voor, die de cpu het beeld laten renderen?
Een videokaart kan tegenwoordig twee dingen doen (heel erg versimpeld voorbeeld):

- Polygoontjes tekenen
- Pixels laten zien

Met dit WARP-spul is het mogelijk om alleen de pixels te laten zien zonder gebruik te maken van de "videokaart" (GPU) om die polygoontjes mee te tekenen. Dat wordt dan door de processor gedaan. De output van de polygoontjes die via de CPU getekend zijn worden natuurlijk nog steeds de videokaart toegestuurd, zoals dat ook al gebeurde in vroegere tijden waarin videokaarten nog geen chip hadden voor 3d spul.

[Reactie gewijzigd door Stukfruit op 24 juli 2024 08:52]

Ik denk dat ath92 graag wilde weten waar hij zijn monitor op aan moet sluiten, als er geen videokaart in zou zitten ;)
Natuurlijk wel met videokaart, maar niet met een directx10 kaart.

En idd, als je een spel als crysis wil spelen kom je zelfs met de dikste processor nog niet op 10fps, dus of het zinnig is? Ik zou meer heil zien in een goede vertaler van directx10 naar 9, maar ook dat is obsolete (nu al) tegen de tijd dat directx11 uitkomt.
Hier gaat iedereen uit van een systeem zonder 3d-versnelling. Echter, er kan 3d-versnelling zijn welke bepaalde features mist. Op deze manier wordt dit probleem opgevangen. In dat geval hoeft het ook niet veel FPS te kosten.
Anoniem: 77640 @WinL1 december 2008 06:53
Zo werkt het niet. Het is ofwel alles in hardware ofwel alles in software.
Wat heet dit eigenlijk voor nut, iedere pc heeft immers een gpu aan boord.
Nou, virtuele pc's niet, remote desktop kan geen directx aan, etc.
Ik weet niet waar jij remote desktop voor gebruikt... maar grafisch geweld over je intranet pompen lijkt me niet bepaald gunstig t.o.v. je bandbreedte.

Om nog maar te zwijgen wanneer er internet aan te pas komt ;)
Aero gebruikt DX9, en werkt dus niet over Remote Desktop. En dat is dus best heel vervelend. (Niet vanwege doorzichtige venster, maar omdat onder Aero de grafische afhandeling van applicaties gescheiden is, dat i.t.t. tot de oude XP methode)

Verder is het voor de bandbreedte vaak beter om ruwe data als polygoon coordinaten over het netwerk te pompen, dan gerenderde data.
"The goal of WARP10 was to allow applications to target Direct3D 10 level hardware without having significantly different code paths or testing requirements when running on hardware or when running in software."
Alsjeblieft, het nut :)
Anoniem: 109985 @Z50028 november 2008 18:27
Hierdoor kunnen o.a. pc's zonder gpu gebouwd worden die toch technologieën als Auro ondersteunen (voor games zijn gpu's duidelijk nog wel noodzakelijk maar dat is een compleet ander doel).
euh.. als je geen GPU hebt hoe ga je dan uw beeld weergeven?

Wat je bedoelt is zoals pelican zegt, een GPU zonder ondersteuning voor Directx10
hoezo?
GPU's (de naam is uitgevonden door nVidia) bestaan nog maar sinds de GeForce 1 (welke de eerste gpu is
alles daarvoor noemde gewoon grafische chip
En wat deed die grafische chip? Grafische beelden verwerken. En waar staat GPU voor? Graphics Processing Unit. Dus die graphische chip is ook gewoon een GPU.
De GeForce 1 was de eerste die enigszinds programmeerbaar was. Hij voerde instructies uit. Alles daarvoor had een vaste pijplijn aan bewerkingen (met niet veel meer mogelijkheden dan deze uit of aan te schakelen). De scheidingslijn is dun maar het is wel een significante stap geweest richting de moderne GPU.

In ieder geval heb je geen GPU nodig voor software rendering. Zo heeft de Geode CPU van AMD een geïntegreerde controller voor beelduitvoer. Da's totaal geen GPU te noemen maar met software kan je zowel 2D als 3D beelden creëren.
De GF3 deed pas aan programmeerbare shaders. Daarvoor had je de cascading pipeline, maar die bestond ook al in voorgaande generaties. Wat er nieuw was aan de GF1 was dat ie hardwarematig de vertices kon transformeren, wat voorheen op de TNT2 nog in software moest gebeuren.
hoe kan je beeld weergeven op een scherm zonder GPU?
als er momenteel een VGA/DVI connector op een PC zit dan is er toch altijd een GPU aan boord, ook als het zit het op de mobo.
Ok voor een DX9 graga mischien? of mischien een toekomst met PC's dat er heemaal geen GPU op zit.. is dat mogelijk BTW? VGA/DVI aansluiting zonder GPU chip/Kaart?
Anoniem: 144800 @sn33ky28 november 2008 20:22
je hebt idd altijd een GPU nodig, danwel de chip op je mobo of een aparte grafische kaart
(zover ik weet)

maar dit gaat er zuiver om dat de pc een GPU heeft die hardware technisch niet DX10 ondersteunt en met WARP dit kan emuleren.
Een GPU zorgt niet voor beeld-uitvoer, dat doet een RAMDAC. Voor zover je dat nog een DAC kunt noemen gezien de vraag naar analoge output steeds meer afneemt. Het enige dat een GPU doet is grafische commando's verwerken (zoals het tekenen van polygonen)

[Reactie gewijzigd door .oisyn op 24 juli 2024 08:52]

Een RAMDAC zorgt ervoor dat het digitaal signaal van een grafische chip wordt omgezet in een analoog signaal. Deze signalen zijn voor D-Sub, composite, S-Video,... DVI en HDMI hebben geen RAMDAC nodig; die hebben een TMDS-chip. TMDS zorgt voor o.a. foutcorrectie, maar niet voor het beeld zelf. Hieruit kan je afleiden dat het beeld wel degelijk door een grafische chip wordt getoond.
http://en.wikipedia.org/wiki/RAMDAC
As the use of DVI, HDMI, and other digital interface technology becomes increasingly mainstream, the "DAC" portion of the RAMDAC will likely become obsolete. Digital interfaces uses TMDS module.

[Reactie gewijzigd door mieJas op 24 juli 2024 08:52]

.oisyn Moderator Devschuur® @mieJas1 december 2008 22:42
Dat doet echter niet een GPU. Een GPU voert bewerkingen uit op het geheugen (om de pixels daar te krijgen). De uitvoerende chip leest slechts het geheugen om dat om te zetten naar een beeldsignaal. En dat over DAC noemde ik al in mijn post, maar feitelijk blijft het nog altijd een losse chip met dezelfde functie als een RAMDAC, namelijk het uitvoeren van het beeld. Daar komt géén GPU bij kijken.
wat er denk ik meer werd bedoelt is dat als jij geen gpu op je moederbord hebt er logischer wijs ook geen vga of dvi aan sluiting is. Dus dat je in ieder geval altijd een gpu zal moeten hebben.
Windows met wat office aplicaties is nogwel te doen op een goede cpu denk ik. Voor games zul je idd nog een gpu nodig hebben ja maar voor veel zakelijke systemen is dat natuurlijk niet nodig.
Waarom zou je investeren in een goede (dure, erergieetende) cpu om beeld op het scherm te tonen als een goedkope igp of low-end kaart dit vele malen sneller en efficienter kan doen. Dus voor de zakelijke markt valt dit zeker af. Verder zitten die natuurlijk ook niet oop softwarematige 3d ondersteuning te wachten.

De gamer heeft zijn cpu al hard nodig tijdens het gamen. Verder maken de gegeven FPS een gamer niet echt warm. Daarnaast komt nog dat zelfs goedkope videokaarten de cpu's eruit lopen, dus zelfs iemand die af en toe gamed heeft er niks aan.

DirectX 10 mogelijkmaken op DX9 systemen? Heeft de processor in die, meestal verouderde, systemen daar wel de tijd voor tijdens het gamen? Die worden al vol belast.

Terwijl we in een tijd zitten waarin de gpu voor steeds meer doeleinden gebruikt wordt om de rekenkracht die in gpu's vrij te laten, komt Microsoft met de mogelijkheid om code voor de gpu op de cpu te draaien. Ik zie geen enkel voordeel, ze hadden beter kunnen investeren in het omgekeerde.
Aero werkt ook met een kaart die niet DirectX 10 Compatible is.
Aero is dan ook DX9
In Vista wel, in 7 maakt het gebruik van DX10.1. Nou weet ik niet of dat optioneel is, maar misschien wordt dit systeem anders gebruikt
Maar die is dus niet altijd directX 10 compatible...
Dat is het hem juist.
Het gaat Z500 er wrs om dat als een PC een DX9-GPU heeft, dat dan DX10 niet helemáál in software hoeft te vervallen. Dat de GPU nog wel degelijk eea kan uitvoeren.
dat zou heel veel nut kunnen hebben voor de intel Larrabee

nieuws: Intel onthult meer details over Larrabee
inderdaad... aangezien dat een heel stel x86 cores zijn...
scheel intel een driver te schijven.. native ondersteuning zou van larrabee wel eens een klapper kunnen maken
dat is natuurlijk dikke onzin, Intel gaat echt wel grafische drivers voor DX bij de kaart leveren, net als nVidia en AMD (ATi). Ondanks dat de Larrabee wel x86 instructies ondersteunt is het nog steeds gespecialiseerde hardware waar gespecialiseerde drivers voor komen. Al is het maar zodat Intel de hoogst mogelijke framerate kan halen in games en dus de GPU markt op kan met hun oplossing.
klopt, maar Larrabee krijgt zeer veel cores, waarbij de I7 of Phenom er maar 4 hebben
dit geeft intel de mogelijkheid om bepaalde functies via Warp af te handelen
zo kunnen ze zeer snel launchen zonder direct hun driver te moeten optimaliseren
Maar het aantal cores is geen maat voor snelheid (hooguit heel indirect). Volgens mij was het SUN die een tijdje geleden alweer een 8 (of 16?) core proc op de markt zette waarbij elke core 4 threads kan doen (soort 4-voudige Hyperthreading dus, in totaal 32 of 64 gelijktijdige threads). Dat ding is wel heel goed in multitasking (webservers, databases) maar wel traag met gewone consumenten dingen (spelletje, internetten). Dus je kunt beter een Intel of AMD proc hebben dan zo'n SUN Niagra (ofzo?) (buiten het feit dat die SUN niet de x86 architectuur gebruikt en dus geen (recente) Windows kan draaien).
beetje raar :S Directx 11 is er nieteens ?
Jawel, maar DirectX 11 zal enkel hardwarematig te gebruiken zijn. Windows 7 krijgt softwarematige Directx 10-ondersteuning, daar gaat het artikel om.
DirectX11, die voor Vista en 7 beschikbaar komt, zal toelaten door middel van "Warp" om alle DX11 (of vroeger) games te draaien op ALLE computers ongeacht welke videokaart er is
met DX10 wou MS de hardware losmaken van de software door harde eisen te stellen, waardoor sommige kaarten de nieuwe games niet konden draaien
uiteraard lieten de gamedeveloppers DX10 links liggen wegens geen markt
dit gaat MS dus nu oplossen door de cpu in te schakelen als je oudere videokaart een bepaalde functie niet heeft
Waar haal je dat vandaan? In het artikel wordt gesproken over no-caps waarbij het DirectX losstaat van de hardware. Ik haal nergens uit dat dit niet voor DirectX 11 geldt en het zou ongeloofelijk stom van ze zijn om nogmaals zo'n blunder als met DirectX 10 te maken...
Blunder? Als gamer heb je er geen ruk aan. Om crysis op 'n intel igp of ci7 of minder te draaien dat is onspeelbaar.
Voor dev des te interresanter. Dat je al DX11 games kan programmeren en debuggen Voordat de hardware er is. of in bezit hebt.
Daarnaast de Device caps hebben ze al laten varen.
Zoals ik hier lees had DX10 geen Reference device die volledig in software draaid voor DX10.x. Dit houd in dat je als developer beperkt bent.
Als de hardware driver nog beta zijn. En je niet weet of de bug daaraan ligd of de fout bij je eigen code. je hebt dan een robuste reference waar je als developer van op aan kunt.
ik hoop dat er microsoft het het goed doet met windows 7 niet van die grote fouten met net als xp en vista ik wacht liever 5 10 jaar tot alles goed werkt en de bugs weg zijn. Het belangrijkste is het gamen. niet van die problemen dat de game niet werkt zo als met Day of defeat source of met counter strike 1.6. meerder dingen te gelijk doen zonder dat de het vast loopt of dat alles langzaam loopt. en beter commutatie met software en game producenten zodat minder fouten worden gemaakt in de toekomst dat is het belangrijkste
Lijkt ook weer een beetje op een stap om het verschil tussen CPU en GPU te vervagen. Over een tijdje CPU's met instructiesetuitbreiding om dit soort berekeningen te versnellen.
Je bedoelt de Intel Larabee CPU?
Daar wordt reeds aan gewerkt. Intel's AVX technologie zal vectoren van 8 elementen introduceren (in plaats van 4 voor SSE nu), en zou zelfs tot 32 elementen uitbreidbaar zijn. Verder zijn er ook al plannen voor FMA, het in één instructie uitvoeren van een vermenigvuldiging en optelling. En ten slotte zijn er ook discussies over het toevoegen van een 'gather' instructie, die verschillende geheugenplaatsen tegelijk kan uitlezen. Al dit zou zorgen voor vele malen efficiëntere uitvoering van 3D rendering op de CPU.
Waarom worden processors met videokaarten vergeleken?
Omdat het hele idee van deze software is dat processoren een aantal taken van de videokaarten kunnen overnemen. Of heb je enkel het plaatje gezien en de tekst niet gelezen?
Dat laatste is onnodig, ik mag heus wel een vraag stellen als ik iets niet begrijp
Om juist te laten zien dat je met Warp10, ook spellen in DirectX10 kunt spelen, zonder dat de gpu dit ondersteund.
Is dit niet totaal overbodig? Alle nieuwe pc's hebben directx 10 (zowel met igp als grafische kaart) en degenen die het toch niet hebben, hebben toch ook niet een sterk genoeg cpu om dit aan te kunnen.
Anoniem: 77640 @Deikke30 november 2008 13:49
PC's misschien wel, maar kijk ook naar netbooks en andere mobiele apparaten. Bovendien blinken de IGP's van Intel niet uit in compatibiliteit, en ook voor NVIDIA en ATI zijn driverproblemen nog niet uitgesloten. Om dan terug te kunnen vallen op een betrouwbare software renderer is dan erg welkom.
Gezien de performance is het voor cpu's niet interessant om te doen. Een 8400 GS is al veel te traag om op te gamen laat staan die cpu performance :P

Op dit item kan niet meer gereageerd worden.