Here on Tom’s Hardware we like to measure graphics performance by running 3D benchmarks but gaming is only relevant to a small segment of Windows users. Even those of us who spend hours playing games spend more of our time in the 2D desktop UI.
For that reason, it makes sense for the Microsoft software engineers to devote a significant part of their time trying to make the desktop environment as snappy as possible. The challenge for Windows is that it must take into account a countless combination and wide range of hardware configurations and try to make it all work.
We detailed in a previous article the lengths at which the team has gone to improve the response time of the start button. Now in the latest Engineering Windows 7 blog, the team has revealed a couple more changes it has made to the graphics system that will make working in Windows better.
One problem that some Windows users experience (prior to Windows 7), is slight pauses or even freezes. Using testing data, Microsoft analyzed thousands of reports where the tester experienced a frozen desktop anywhere from 100msec to several seconds.
The way Windows Vista does it
“The type of issues ranged from an antivirus blocking disk access for all applications while updating itself on the vendor’s website to an application doing network access from a UI thread,” explained Ameet Chitre, a program manager on Microsoft’s Desktop Graphics feature team.
Microsoft found that a large portion of ‘freezes’ came from multiple applications waiting around for one another to be finished with the GDI (Graphics Device Interface) before each could update the desktop with a new render.
In Windows Vista, a single application could hold a system-wide lock on the GDI, basically creating a bottleneck, especially if there are other applications waiting in line to access the graphics stack. While such a design decision may have been okay in the past, it’s been re-engineered for Windows 7.
The way Windows 7 does it
“The solution to the problem was therefore to reduce the lock contention and improve concurrency by re-architecting the internal synchronization mechanism through which multiple applications can reliably render at the same time,” Chitre wrote. “Contention due to the global exclusive lock is avoided by implementing a number of fine-grained locks which are not exclusive but aid parallelism.”
The shift in architecture adds a small overhead cost when only a single application is accessing the GDI at a time, but trade off to aid in multitasking is worth it.
“This work also resulted in better rendering performance of concurrent GDI applications on multi-core CPUs. Multi-core Windows PCs benefit from these changes as more than one application can now be rendering at the same time,” Chitre said, adding that the improvements worked to reduce response time issues. “Without the Windows 7 GDI concurrency, the rendering throughput of these applications is effectively limited to the performance of a single CPU core. Since only a single application can acquire the global exclusive lock while the others are waiting, this scenario doesn’t benefit from multiple CPU cores. This demonstrates that GDI applications in Windows 7 are now much less dependent on one another.”
Frame rate of each application window a quad-core CPU system
Changes such as this are immediately appreciable by all Windows users, particularly those who feel that Windows Vista’s performance wasn’t up to snuff. No new drivers are required for this as the new GDI system will work with any Vista (WDDM 1.0) driver.