Nothing hurt like switching to Vista last January, whatever hardware you had under your hood. Microsoft drew a line in the sand and shipped its new OS as developers went from shock to anger to depression to acceptance overnight before rushing to tie off driver and application code after months of delay-driven reprieves. When Vista landed on shelves, it looked fantastic, but its drivers and game performance numbers were in considerable disarray.
In the third part of my interview with Nvidia, Roy Taylor, Ken Brown, and James Wang explain why.
DX10 for XP, annual single-card and SLI driver improvements, and driver nightmares when Vista launched
Game On: Was DX10, understood as a complete rewrite of the API, achievable or possible in a general sense on Windows XP? The cynic would say that the reason it was only offered with Vista was because Microsoft wanted to push copies of its new OS. True or false?
Roy Taylor: I think you know it's easy to be cynical and to look for plots. The fact is that Vista is incredibly complex, and whilst many users may feel Microsoft has missed the mark, I'm happy to go on record because I've said it before, personally as Roy Taylor I hate User Account Control. I loathe it. First thing I do on any of my machines or my family's machines is turn if off. That's just my personal opinion. There are some thing about Vista which are hard to love.
But I totally respect Vista as a product. It's incredibly complex, incredibly ambitious, and it's trying to really do some new things. Personal opinions of users may vary, but I admire Microsoft's ambition. And the fact is, not making Vista backwards compatible allowed them to really try and introduce some new effects that would enrich the gaming experience.
Now you can argue as a journalist, and users can argue, whether they achieved their goal or not. And that's a fair thing to do. But we shouldn't undermine their efforts at genuinely trying to do something new, and not making DX10 backwards compatible freed them up to do that.
GO: So you're saying there were necessary and sound technical reasons for making DX10 Vista-only?
RT: I think it would be fairer to say not having to concentrate on making DX10 backwards compatible allowed them to focus on making it feature-rich, which is what users were asking for.
GO: When Vista first came out, the performance delta going from XP to Vista was significant in DX9 games alone. Recent benchmarks from sites like Firing Squad and others comparing XP and Vista suggest that the performance delta has been substantially reduced. Are you guys finally getting positive feedback?
James Wang: The general perception you're talking about where Vista seems to be slower than XP, I think a lot of that has to do with early drivers that were released, you know, the first beta drivers that most of the early stories were based upon. We've had recent stories done that compared XP to Vista performance in single and SLI and the conclusion of those reviews has been simply that most gamers will not notice a performance difference. There's either no performance difference, or it's so small it's between like 100 and 110 frames per second, or something where it's entirely a CPU-bound problem.
We knew we were getting there for single-card performance by about May 2007. So by May, we had driver performance to the point that a single GeForce 8 would perform pretty much the same under Vista as under XP. We knew that SLI still had issues, and by about the second half of last year we had that sorted out. Today I think that if you were to look at any game running in XP versus Vista, I very much doubt you'd see any meaningful difference.
GO: Why when Vista first came out were your drivers so immature, and what did it take to get them into a state of maturity?
RT: Vista as I said before is really, really complex. I think that people have gotten so used to having things just work all of the time, and yes as a user you should expect that something just works and we understand that. But the sheer enormity of the product and the radical difference in the driver device model, I think, caught us all a little bit by surprise. And yes, we had seen Vista before, and of course we had access to the builds, but when the final product came, I think that the industry had been expecting and gotten used to delays and reschedules, and then suddenly there were no more delays and reschedules and it was here.
It's an enormously complex product. I think Bill Gates famously said it cost more to develop Vista than it did to put a man on the moon. It's true. It's just hugely complex. And no matter how much time or warning you're given, it just takes time to learn something like that.
Ken Brown: I dug up some notes that I had on that subject around the time that Vista launched, and one note I have is that an Nvidia graphics driver for Vista has 20 million lines of code, which is roughly analogous to all the lines of code in Windows NT. So at the time we had to do six versions of the drivers. One for DX9, one for DX9 SLI, one for DX10, one for DX10 SLI, one for OpenGL, and another for OpenGL SLI.
So the challenge for us was writing to the new display driver model. It was managing all those different versions for both DX9 and DX10 products, which was a tougher challenge for us than our competitors because they didn't have a DX10 offering at the time.
Is that an excuse? No. We should have done a better job with our Vista drivers out of the gate. But we worked really hard on it and we devoted a lot of resources to it, to address it as quickly as we could. And by now, it's all history, because the drivers are so much better, and performance is up to par.
JW: If you think about it, it really is an entirely new driver model you're programming on, especially with DX10. It takes years. If a new programming language came out or a new architecture came out, it takes years for the compilers and the programs to grasp how to really use it. And that happened throughout 2007 with Vista.
Some of the performance issues, like with Half-Life 2 where things were 15 or 20 percent slower under Vista than XP, it took our best engineers many many months to work out the exact details. Some of it is to do with the Vista kernel, some of it is to do with our drivers, but we both have been improving dramatically this year, and you see we have a list of five of the most important Vista hotfixes on our website. Those five address specific things in the Vista kernel that are not doing things intelligently about distributing work to SLI for example. And these very, very specific things are causing a slight difference in performance.
But more importantly, you're comparing Vista to not really XP but XP with Service Pack 2. And that took, what, three, four years of refinement to get to? I think next month or the coming couple of weeks Vista SP1 is coming out. So then we're finally getting to a stage where Vista has all the basic tuning included. SP1 will include all the changes with the hotfixes, and I think you're going to see performance that's pretty much spectacular.
Replay
Agree? Disagree? Have your say below in comments, visit Wake the Happy Words for expanded dialogue, or pelt me with emails here.
Yeah thats BS, DX10 needed to be feature rich instead of backwards compatible... it doesnt matter if it has all the features in the world if it cant perform them well! they should think about these things before they release them. all of microsofts problems relate to rushing things out there before half the bugs are out of it. thats why they needed updates and updates just to get everything running right. and if vista is so complex, then why is it just a beefed up version of XP exept without the computing awesomness of its older sibling. Complex doesnt work, complex only pisses people off. simplicity, with performance fantasticness, have always been the mainstay of computing success. thats why XP worked. it was simple, powered through applications without taking up all the hardware, and could be made even more secure than vista. not to mention it didnt ask you "do you really want to click that?" and when you click yes it asks you if you are sure if you want to click yes.
"There's either no performance difference, or it's so small it's between like 100 and 110 frames per second, or something where it's entirely a CPU-bound problem."?
They can cover up for the problems of vista all they want but we hardware enthusiasts arent so naive. No game gets 100-110 frames per second on vista if its any good. that or you are running it on a veritable super-computer, or a 2D game running at lowest settings. what are they running quad SLI with dual-quad core, core 2's?
@Yuffiek
You have no idea what you are talking about. You are just regurgitating the rhetoric you are reading on the web. I use Vista, I game on Vista, and I have no problem with Vista. My rig is not the latest and greatest either. The only part that is not more than 2 years old is my video card and my motherboard. I would expect a self-proclaimed "hardware enthusiast" to at least have a slight clue as to what he is talking about.
Visit NVIDIA Forums > nZone > Hardware > ForceWare Drivers. View for yourself the 2k complaints about the 8800 vista drivers or the 1.5k vista drivers issues.. I am amaized that the Nvidia and Vista TDR errors isnt in the news every week !