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 itThe way Windows Vista does itThe 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 itThe way Windows 7 does itWindows 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.0Desktop Window manager memory consumption comparison using WDDM 1.1 v. WDDM 1.0This 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.

This thread is closed for comments
    Your comment
  • Shadow703793
    Good to see Microsoft doing things to optimize code. Now, could we please have a multi threaded OS?
  • 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?
    man win 7 keeps getting better and better!