|Well, strictly speaking, you are mostly right. The problem with, "Companies have an incentive to make it work.", is that they usually, due to how most deals run, only have an incentive to make it work with special features for "Windows". That causes them to run into a few major problems. 1. Even the best of their drivers, for video cards, for example, don't *always* perform as they should, unless you talk direct to the hardware, and that ironically often disabled much of their features, which use Windows only libraries and communications. Some, like ATI, where so **horrible** at making their drivers "just work", that, for their HDTV capture card for example, I gave up one using their software that came with it, because I went through like 10 versions, in which every time they fixed one bug that prevented component A from working, it would break B, C or D. I now use Beyond TV for it, but even the hardware has minor issues, which the drivers don't/can't fix, that make it work a bit less than optimal some times.|
As a rule, and another example, one would think that once you perfect X, and every new video card you make has that feature, you wouldn't have to keep patching the new drivers, to try to figure out why X, and Y *and* Z won't work on the super 9920, when it works fine on the 9901, or something, yet that is *precisely* what happens, all the time. And on some, like the one I have, the hardware itself simply can't support some of its own features correctly, or when used with others, because the hardware itself only has internal pipe lines for "one or the other", but not both, and because its using DirectX, instead of OpenGL, even if you have like 4 cores, each running at 2 ghz, or something, the "drivers" don't allow for support of *any* graphics features via software, but force you to try to use hardware. And that isn't even including the whole BS issue of DirectX 10.
Sure, those are not drivers, but even if you *have* a working driver, the technology might as well be totally useless, since the interface, driver or not, is foo-bar, due to it *requiring* an entirely different proprietary method to talk to the card, to be able to *actually* use any of the features. Worse, the card might not support OpenGL at all (not too common a problem now, but it did happen for a while), or the OpenGL, being a lower priority, will be horribly broken for it (far more common a problem).
And that isn't even to mention the genius decision of MS to, in their new OS, to divorce the sound card even more from internal function, and make it nothing more than a feed system for "software based" sound production. I.e., instead of a *big* driver, which uploads sound production code into the cards firmware (or ram, as more common), or one with a small driver, which talks to a card with *real* production capability, the new trend in MS land will be cards that have ***no*** internal ram, function, other than to just funnel out the sound, after its already calculated by software. Lots of games when you try to run them on Vista are *already* broken because of this, and the hack used to get around it doesn't work 100% right, and is... wait for it... not provided by Microsoft, who created the problem in the first place.
No, the reality is, most companies only driving ambition, for a **long** time has been to make their stuff work, as well as possible, despite the often paranoid attitude of MS about releasing any information about interfaces or code, so that most people will be satisfied with the result, and only the real tech heads, who can tell what just broke in the new hardware, will notice a problem. MS' driving ambition has, on the other hand, been to serve, primarily, big businesses which buy from them multi-million dollar contracts, and only really help the home users *if* it encourages them to use Windows in their businesses. Game makers, manufacturers of hardware that is mostly *only* used for those things, etc., is not their lowest priority, but was, for a long time, very low on their priority lists. It still, imho, is, since most of their concentration in that area has gone to their game console, not to the PC, in recent years. Result - persistent bugs and problems only get fixed if it effects the console, and since the console is using *one* and only *one* type of hardware for its various features, its not too clear how or even if something they change to make that work better, (and it does run Windows too), will break something on a PC, with completely different hardware.
And, 99.9% of all patches from them *are not* related to software patches, game patches or bug fixes on the PC, but only security fixes. Case in point FSX, which came out in like 2004, and which they *only* patched twice, once in like 2005, and once in 2007 (December), neither patch of which fixed certain outstanding and obvious bugs, and one change which actually "broke" texture compatibility for the older FS '98 models, which patch #1 had previously fixed. These are high quality satellite photo textures for land mapping (which made the landscape actually *better* in the old game, when added, than in the new one) and new aircraft, not specifically supplied in FSX natively.
So, even if nVidia, or some other company "fixes" a problem with a driver, half the time MS' own changes just break things again. This is far less likely to happen under Linux, thankfully, but then, unless someone reverse engineers DirectX for it, or some alternate means to get at those things can be developed for Linux, without nVidia and ATI/AMD breaking their own contracts with MS to do it, your still going to have things that won't work, are not supported, and which might *never* work.
All in all, its a major pain in the #$@, especially for someone like me, who doesn't want to *have to* know this stuff, but just wants my bloody games to work properly, not to mention my 3D software, 3D glasses technology, useful for some games, my MP3 players, my music creation software (if my niece needs it for that while visiting), etc. And it, quite simply, doesn't a lot of the time, not the way it should, according to the specifications of the hardware I have and what its "supposed" to be able to do.
Oh, and just to be clear, the driver issue for DVDs is **so common** that there are entire threads posted on help sites dedicated to saying, "Oh, that is easy. Windows probably just detected it wrong. Unplug it, delete the driver, then let it detect it again. It should work then." You would think that something that common would have a patch, right? lol