Lately, with the public launch of Windows Vista, there are some bluffs about the new operating system. I'm going to focus on one: The "Vista is quite bad for gaming", aka "NVidia on Vista sucks".
Benchmarks are benchmarks, so it's true that Vista runs slower than XP with all games. But why is that?
First of all, there are no DirectX10 games on the market (a bunch in development, but none finished yet), so all benchmarks are made with DirectX9 games. That is an important point, because, as Vista has changed the internal structure of the drivers (with part of them now being run at kernel-mode), it's obvious that Vista's DX9 is not the same as "normal" DX9. The following diagram shows the new API structure:
The Windows Vista Graphics API structure
Because of backwards compatibility, the entire Direct3D 9 API is present, with some parts of it being emulated (resource creation & management and error handling) while using the new Vista's driver model. This means that performance will actually degrade, but it shouldn't be too much.
But in order to achieve best-performance with DX9 and take advantage of the changes, Direct3D 9 Ex API has been created, bringing new features to take actual advantage of Vista. This extensions use the WDDM drivers (required for Vista), so are just for that OS.
What all this means is that yes, Vista for current games is not as fast as XP, but way too slow to 20% less? I don't think so. NVidia's drivers are in beta stage, not even supporting fully DirectX10. Probably, when they release a "final" version of their drivers, things will go way faster. I've got an ATI 3D card and they release new drivers once a month more or less. I've had glitches and problems with games (like Far Cry, Kotor II,...) until they released a new version fixing that. I've had noticeable performance improvements sometimes after updating to latest drivers.
Also, it's clear that game companies should make patches for their games, creating new routines that call DirectX9 Ex instead of DirectX9 if the game is running under Vista. That would surely increase the FPS noticeably.
So, this is IMO the list of "problems":
- Games need patches. Some to run/not crash, some to get around DX9 emulation.
- Drivers need to get stable. A beta driver is beta. NVidia has to hurry.
- DX9 without DX9 Ex runs a bit slower. And won't be the same without the extensions, except if graphics drivers can somehow call the DX9 Extensions (I don't know if this is even possible).