Posted on May 7th, 2009 by Darien Graham-Smith
Windows 7 GDI performance: the trade-off
Yesterday I noted that our Office benchmark runs surprisingly slowly in the Windows 7 RC. Today I’ve been digging around for an explanation.
The first step was to see whether the slowdown affected all Office applications equally, or whether it manifested mainly in one application. This was easily tested with a stopwatch, and the results were pretty clear: the Access, Excel and Word tests completed in effectively identical times in Vista and Windows 7 RC… but the PowerPoint test took more than three times as long in Windows 7.
Look, here’s that same information in graph form:

What was slowing PowerPoint down? The benchmark wasn’t stalling at any particular point. Rather, it seemed to suffer from a generally hobbled draw rate. With Vista I’m used to seeing our test slides flash past at tremendous speeds, like some sort of corporate blipvert; but in Windows 7, running on the same hardware, the more complex images took an appreciable fraction of a second to render. Since our benchmark uses hundreds of such slides, that was enough to explain the difference in execution times.
Updating the drivers
It looked like a classic graphics driver problem. The drivers for our ATI Radeon HD 4550 had come from Windows Update, so I downloaded ATI’s new WHQL certified Windows 7 drivers, installed them and repeated the benchmark. No change.
Just to be certain, I whipped out the ATI card and replaced it with an Nvidia GeForce 8500GT. Identical results again, regardless of whether I used the drivers provided by Windows Update or the latest package from Nvidia.
This year’s model
On the face of it, this is mysterious. Windows 7 uses the new Windows Display Driver Model 1.1, which is supposed to perform more efficiently than the WDDM 1.0 found in Vista. Hell, its superiority is obvious as soon as you start dragging transparent windows around on a low-spec PC. So you’d expect rendering in PowerPoint to be faster, not slower.
But if you look into the actual changes involved in WDDM 1.1 (there are some good details at the Windows 7 Engineering Blog) it’s apparent that there’s an element of trade-off involved. Let me pull out a few pertinent sentences from that blog link:
In Windows Vista, every GDI application window accounts for two memory allocations which hold identical content – one in video memory and one in system memory. [. . .] Windows 7 saves one copy of the memory allocation per application window by getting rid of the system memory copy entirely. Thus, for a GDI application window visible on the desktop, the memory consumed is cut in half. [. . .]
The elimination of the duplicate system memory copies [leads in some cases to] reduced performance as the CPU now has to read data back from the video memory. [. . .] Our observation has been that these slow-downs do not impact the end-user functionality directly and that the memory savings directly result in Windows 7 being much responsive overall.
To me this sounds like a very plausible explanation for the effect I’ve seen. It’s easy to believe that PowerPoint’s graphical routines involve lots of inefficient CPU-based operations – I mean, that’s what it looks like when it’s running.
And, in fairness, I think Microsoft is right to make this trade-off. In the real world, a small delay in switching slides is unlikely to cause too much bother (although it would arguably be a good thing if it did discourage people from using PowerPoint). It’s probably a price worth paying for the nippy Windows 7 front-end.
Back to the old school
But what if you rely on an application that’s more severely affected? I can easily picture a specialist CAD or modelling application slowing to a crawl with Windows 7 drivers. And since the performance trade-off is by design there’s little hope of a fix. What then? Is there a way to regain the performance of Vista? (There’s a question I never thought I’d ask.)
The answer is pleasingly simple. Since Windows 7 is designed to be backward-compatible with Vista, you can just install a Vista graphics driver, which of course will still use WDDM 1.0. And guess what?

Yep, installing WDDM 1.0 drivers on Windows 7 brings GDI performance back up to speed. (In fact I found the combination slightly faster than Vista, but don’t read too much into that – I’d need to repeat the tests several more times to be sure that small variation wasn’t just down to background services, caching etc.)
I tested Vista drivers under Windows 7 with both ATI and Nvidia cards and the results were identical. Sure, the old drivers are supposedly less efficient, but I didn’t observe any difference in responsiveness or RAM usage, even when I opened up twenty concurrent Explorer windows.
OK, it’s not a perfect solution, nor even a very neat one. And as developers get to grips with the new OS, choosing Vista drivers may mean missing out on Windows 7-specific benefits.
But still, it’s good to know what’s going on.
7 Responses to “ Windows 7 GDI performance: the trade-off ”
Leave a Reply
Authors
- Barry Collins
- Chris Brennan
- Christine Horton
- Darien Graham-Smith
- Dave Stevenson
- Davey Winder
- David Bayon
- David Fearon
- Ewen Rankin
- Ian Devlin
- Jon Honeyball
- Jonathan Bray
- Kevin Partner
- Mike Jennings
- Nicole Kobie
- Sasha Muller
- Steve Cassidy
- Stewart Mitchell
- Stuart Turton
- Tim Danton
- Tom Arah
Categories
- About the bloggers
- Android App of the Week
- cloud computing
- Green
- Hardware
- How To
- iPhone App of the Week
- Just in
- Microsoft Office 2010
- Newsdesk
- Online business
- Random
- Rant
- Real World Computing
- Software
- View from the Labs
- Windows 7
- Windows 8
Archives
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
advertisement


May 8th, 2009 at 8:34 am
Surely the ATI Win 7 drivers are in beta. I use Nvidia drivers and I know they stick the beta tag to it.
May 8th, 2009 at 9:31 am
This is interesting and it could be the beta drives as muck mentions.
Are you planning on testing this with CAD and/or Photoshop etc. as this would be interesting to see and could cause bigger problems)?
May 8th, 2009 at 12:11 pm
Good work Darien, very interesting.
May 8th, 2009 at 6:48 pm
Darien, where can I install the benchmark from? Which version of office does it use?
Thanks!
May 8th, 2009 at 11:28 pm
[...] PCPro nos llega el resultado de unas pruebas de rendimiento que competen a la nueva versión de Windows [...]
May 11th, 2009 at 1:05 pm
Yuri: These are the standard PC Pro real world benchmarks, which use Office 2003. I’m afraid we can’t distribute them as they’re built on commercial code from multiple vendors… but if you’re interested you can find more details in the “Real World Benchmarks” section of any PC Pro cover disc. Cheers!
May 17th, 2009 at 4:04 pm
Hi, I think that the reasoning is not much correct. With the new GDI model of WDDM 1.1 there will be a slowdown only when the CPU has to read back from the GPU vram. This case is very rare in normal applications. Why you would read back from video memory? Usually you want only to draw something on the screen. And if you want to elaborate some pixels already displayed on video, usually you leave this task to the GPU itself (and this is what should do WDDM 1.1), because the GPU can work at full speed with its vram.
So, I think that if an application, today, works faster with Vista WDDM 1.0 drivers, it is only because the Win7 WDDM1.1 drivers are not mature yet. Or maybe new applications have to use new WDDM1.1 api to take advantage of its GPU accelerated functions.
Sorry for my bad english.