Skip to main content

Windows 7 Way Smarter With Graphics RAM

In an earlier article, we described an advancement that the Windows 7 team made with desktop graphics by allowing more than one application to access the GDI (graphics device interface) stack at a time.

Allowing for more parallelism in the GDI will noticeably make things more responsive, but that wasn’t the only evolution that the software team made for the new OS. Windows 7 will now be more efficient in its use of RAM, which will have the positive effect of making everything run smoother – particularly on systems with shared graphics memory.

In Windows Vista, the more application windows you had open, the more memory required. Every window accounts for two memory allocations – one in video memory and one in system memory – which hold identical content.

The way Windows Vista does it

The DWM (desktop window manager) is responsible for drawing the desktop with the GPU, which obviously requires the application window data in video memory. The same application window data is duplicated again in system RAM for the CPU to render independent of graphics hardware. This was inefficient obviously because of data redundancy.

The way Windows 7 does it

Windows 7 changes this by getting rid of the system memory copy entirely, which effectively cuts the memory consumed in half. Unlike the changes to the GDI stack detailed earlier, this new memory-saving behavior requires new drivers.

“We achieved the reduction in system memory by accelerating the common GDI operations through the graphics hardware - the WDDM drivers accelerate these to minimize the performance impact of the CPU read-back of video memory,” explained Ameet Chitre, a program manager on Microsoft’s Desktop Graphics feature team. “Since you save a lot of system memory, the paging activity gets reduced – as a result, your system responsiveness improves for the same workload.”

The new drivers that support the memory-saving change are designated WDDM 1.1. Older Windows Vista WDDM 1.0 drivers will still work fine with Windows 7, but do not take advantage of the new feature.

Desktop Window manager memory consumption comparison using WDDM 1.1 v. WDDM 1.0

This change positively impacts real-world usability, but benchmarks may show a degradation in performance since the CPU has to fetch data from video RAM.

“The elimination of the duplicate system memory copies which ‘speed up’ certain operations introduced slightly reduced performance as the CPU now has to read data back from the video memory. An analysis of real-world application statistics showed that these operations were rare,” Chitre said. “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.  The improvements overall are definitely noticeable on memory constrained PCs with shared memory graphics.”

The close-to-completion Windows 7 is nearly upon us. We learned on Saturday that the Release Candidate will be hitting MSDN and TechNet subscribers on April 30 with the public getting their Windows 7 RC download links on May 5.

  • Shadow703793
    Good to see Microsoft doing things to optimize code. Now, could we please have a multi threaded OS?
    Reply
  • thundercleese
    I have a Radeon HD 3870 X2 with 1GB or video RAM and 8GB of system memory. I clearly don't use shared video memory and my GPU is never starved of memory either. Would it be wiser to stick with WDDM1.0 scheme in that case? And then use WDDM1.1 for my HTPC with an intergrated Radeon HD3200?

    ...Or would I even notice a difference on either system using either 1.0 or 1.1?
    Reply
  • LATTEH
    man win 7 keeps getting better and better!
    Reply
  • tipoo
    Sounds good to me.
    Reply
  • 7amood
    yeah, it's clear that they are DOING...
    everyday, it becomes more interesting for me
    more efficiency... more development... more...
    Reply
  • jsloan
    wow this is amazing news, i cant wait for the rc.
    Reply
  • jsloan
    thundercleeseI have a Radeon HD 3870 X2 with 1GB or video RAM and 8GB of system memory. I clearly don't use shared video memory and my GPU is never starved of memory either. Would it be wiser to stick with WDDM1.0 scheme in that case? And then use WDDM1.1 for my HTPC with an intergrated Radeon HD3200?...Or would I even notice a difference on either system using either 1.0 or 1.1?
    you want to use 1.1 and take full advantage of windows 7 change. this is amazing, right now your graphics card memory is not directly used, instead windows writes to your ram memory and they are synced. this takes time, what microsoft is doing is directly writing to your video cards memory, saving the overhead of keeping the two synced. this is amazing and everyone should try to move over, baring problems...
    Reply
  • See, this is how they avoid "perception problems" like in Vista, have the news constantly flood you with puff pieces on what a great OS this is, and thus, rumors that it doesn't suck spread like wildfire. This is why it's a new OS rather than Vista SP2.5, even though it's based on Vista. I hope it lives up to the hype, but don't let them "market" it to you like Apple does.
    Reply
  • brother shrike
    Shadow703793Good to see Microsoft doing things to optimize code. Now, could we please have a multi threaded OS?
    ummm.... Windows is multithreaded. has been for a while.
    Reply
  • thundercleese
    SkepticalSkepticSee, this is how they avoid "perception problems" like in Vista, have the news constantly flood you with puff pieces on what a great OS this is, and thus, rumors that it doesn't suck spread like wildfire. This is why it's a new OS rather than Vista SP2.5, even though it's based on Vista. I hope it lives up to the hype, but don't let them "market" it to you like Apple does.

    They're not "rumors". I have been using the Betas for a while now on many different plataforms and I can tell u Windows 7 is excellent.
    Reply