DirectX 10 Only On Vista
Next Generation is reporting that DirectX 10 will only be released for Windows Vista. Those of us puttering along with XP will have to make do with 9. From the article: "The exclusivity of DirectX 10 means that in order to enjoy the high-end features of next-generation GPUs, gamers will need to adopt Vista. Some end users are upset with Microsoft, as the move effectively forces gamers to buy Vista if they do intend to remain serious about cutting-edge PC gaming." It may even be worth it for titles like Crysis.
"Fedora" is a hat. "Ubuntu" is not a hat. ;-)
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
Marketing may be a corollary, but IIRC, DX10 takes advantage of the new driver model in Vista. so, it's probably technical reasons more than marketing that's driving this decision.
I can't figure out whether people actually believe the "Vista is just XP with a new skin" /. meme, or they just propagate it for mod points...
Either way, our friend Wikipedia has plenty of information about the new features in Vista. In particular, note the following:
The Direct3D page has more information.
The Online Slang Dictionary
Microsoft has been saying DX10 would be Vista only for about a year now. I even blogged about it last September. If the gaming community is only just realizing it then they only have themselves to blame because they're a year behind the devlopment community.
There's actually very good technical reasons it can't be back-ported to XP and that's because it's changing the entire paradigm of the way the Windows OS works with the video card. The GPU and video RAM are being treated as OS resources that are time shared and paged in and out in exactly the same way the CPU and main system memory are currently. Simply put, this means at the very basic level that the driver interface (WVDDM) for the video cards is very different, and much thinner but as it is a new driver model, XP won't be able to load it.
So, game development companies are left with the decisions of whether to use DX10 which has a bunch of new features (general purpose geometry shaders that can create and destroy primitives in the pipeline), or maximize compatibility and shoot for DX9 which is being effectively frozen.
The bigger issue for most is that OpenGL becomes a "second class citizen" on Vista as any use of it outside full screen rendering effectively turns off the entire Aero interface. Users are going to notice this, and apps using OpenGL will get bad feedback for "breaking the interface when they run".
Fear: When you see B8 00 4C CD 21 and know what it means
DirectX 9 never came to Win98. It was one of the major reasons many gamers upgraded to WinXP. (Well, that and stability).
It sounds like vista offers a bunch of API improvements, ala directx 10 and the presentation foundation. What's interesting is how few things *won't* be back-ported.
WPF is being back-ported to service pack 2 according the the wikipedia article. The powershell has already been released for xp. Directx 10 won't have games coming out for it for quite a while... what features exactly does that leave for vista?
XP offered a major upgrade in stability, to the point where it's almost on par with most other operating systems, an that was the selling point. What's Vista's selling point? Seriously, after all these years of development, does it have 1 single exclusive killer feature?
So far, the only thing I've seen are improved themes and hi res icons... I'd heard about built in virtualization in the past, but that hasn't been mentioned for quite a while. Was that dropped?
MS has always had the strategy of selling OS upgrades by artifically requiring them - hell, they've done this since DOS version 5 and "setver". That they would make something Vista-only purely to drive Vista sales is par for the course.
Setver did the opposite. A lot of software was hardcoded to expect certain DOS versions, often because it hooked into DOS internals, or made assumptions that were not guarenteed to be correct in different versions of DOS. Setver was an MS utility that came with DOS to let you get around those limits.
Despite all of the microsoft bashing, Direct3D 10 has the potential to be a major inflection point in the 3D graphics industry. The driver model of vista combined with the new rendering methods of d3d10 reduces the cpu time of rendering by approximately 50%. This allows for many more primitives to be drawn on the screen without the added cost of context switching between cpu and graphics engine.
Also, d3d10 introduces a general purpose graphics shader which can be used to create vertices. In directx9 and below, all new polygons had to be created on the cpu and transfered to the graphics card. Allowing the graphics card to create vertices can drastically speed up existing algorithms such as stencil shaders (Even though they are so 2 years ago JC), and allow more efficient algorithms.
D3D10 also adds a unified development model. This means that the vertex shaders, pixel shaders, and geometry shaders all can execute the same commands and do texture lookups. Once again, this is an advantage of D3D10 over directx9. Many of these things were exposed during earlier generations of directX and opengl through extensions; however, for a card to be d3d10 compliant, it has to be fully compliant, and implement all of the instructions in the language (no more caps, developers rejoice).
Existing d3d9 code running with d3d10 can gain as much as 20% performance based on the new rendering methods, which alone is a reason for a dev to start coding towards d3d10. Whether upon release, performance benefits are the same scale is yet to be seen, but there are definately advantages strictly for 3d rendering in d3d10 over earlier versions of directx and opengl.
Finally, GPGPU applications will be able to take advantage of many of the new features. For one, d3d10 requires virtualized memory. This will mean large datasets can be loaded onto the GPU without having to worry about running out of local memory on the card. Also, the precision on d3d10 cards is required to be 32 bit precision (not sure, but might be IEEE-754 standard).
So realistically, there is no reason devs have to start using new features, but its their nature to use the best tools available to them, and upon Vista's release, d3d10 will be the best graphics api from a feature and performance standpoint.
Vista's new Display Driver Model. It allows for a hardware accellerated desktop environment, in addition to multiple hardware accellerated windows (ie two videos can both be playing hardware accellerated at once) and the ability for GFX cards to have virtual memory.
DX10 is built to take advantage of these new improvements. If they backported it, they'd have to do one of the following:
- Don't take advantage of the new DDM in Vista, and just do an incremental update.
- Backport the entire DDM to XP. This will result in less reasons to buy Vista anyways.
Option 1 was clearly unacceptable if MS wanted to make advancements in PC gaming software tech (stuff). Option 2 is clearly unacceptable from a business standpoint.