Demirug:
Raven:Question, why isn't DirectX9 installed by default?
I know DirectX9Ex and DirectX10 is, but that doesn't allow support for legacy applications.
Vista supports all previous DirectX versions. There may be some compatibility issues in cases of extreme API usage but general “legacy” DirectX applications runs fine. Most times I see a game failing on Vista the copy protection from the game was the reason.
This is true for DirectX9 applications, post installing of the DX9 RTM. There are only a handful that don't run, although I've found from time to time intense usage of the system prior to using DirectX will cause it to fail loading up properly. Applications will have a habit of initialising then immediately dropping to desktop, and remaining there. This is an issue with a large number of games where *everything* that happens outside of the game will cause it to drop back to desktop.
I fear that they didn't really test DirectX9 fully, as when I'm using or developing something in fullscreen I don't want it to drop back to desktop until the application closes or the user hits Alt-Tab (even then I prefer to override this feature).
Although I do wish I could say this same compatibility is true going futher back. DirectX8 applications are a gamble, and DirectX6/7 will often just refuse to run outright. Some I've learnt copying D3DRM.dll to their root directory solves this (if it's put in System32 it seems to want to call incompatible libraries), but that's only a handful of games this works for.
Dark Forces 2 - Jedi Knight is a good example of while the api will run the app there are serious issues as the entire screen will remain black no matter what you do.
I've actually dishearteningly found that Linux using Cedega actually runs DirectX8 and below with far better results than Vista. This just shouldn't be happen, either they should drop support for these applications out-right or fix the issues.
I'm also extremely disappointed under Vista the performance of DirectX. I would've hoped and had heard rumours during Vistas' development that DirectX would be able to run similar resources for fullscreen applications that you would expect from Xbox 360 Dashboard, but unfortunately that just isn't true. As for DirectX10 performance goes, I'm still not sure what to make of it. Annoyingly given it's only the next generation cards that won't be common until next year it makes it fairly pointless to develop for past personal interest or along side a DirectX9 engine. More to the point DX10 is realistically only Direct3D 10, DirectSound, DirectPlay, etc. are all still previous versions of deprecated.
Replacements and/or updates for these systems, really needs to be developed to maintain the completely rounded solution that DirectX has provided in the past. Only XNA itself seems set on providing this, but there is no native equivilant nor is the solution complete yet.
Something that I'm very interested to know is why have Microsoft dropped support in DirectX10 for non-DX10 Compliant cards? Previous DirectX incarnations were capable of being compatible, and using the features in that API that they support.
Although given there is no longer a fixed function pipeline, sure it wouldn't break DirectX10 by opening it up for Shader 1.1-3.0 compatible cards? Shader 2.0-3.0 in particular are the most common cards currently used and probably will be for the next few years given compatibility with the Xbox 360 which uses a Shader 3.0 GPU. To me it'd make sense for support for these cards so that everyone could take advantage of this performance increase in DX10.
Maybe I was just expecting too much from Vista.