Windows Vista: Real Progress And The Art of Omission
When we first installed Windows Vista, we could barely contain our anticipation. Intricate, complex, and advanced, Vista certainly generated great expectations.
But what seemed so revolutionary at first changed to aggravation from one application to another, and sometimes to outright horror. Let’s review some relevant items in detail:
Implementation of the 2.5D Layer in Hardware
This technology was implemented for the first time in Windows Vista. It was a long time coming, but finally arrived in 2006. There was nevertheless still one small limitation: it only worked when the Aero interface was activated. Also, 2.5D layering required a 3D-capable graphics card, even for those with no need for 3D applications or games. Those who only used the Vista Basic theme would suffer from the same kind of blurring or repeat effects that XP users experienced, because 2.5D layering was automatically disabled, even with a 3D graphics card installed. Ouch!
Slow Snapshots
The switch to 2.5D layering also left Microsoft with more than a few problems to solve. Vista was perceived as slow, but mostly stable. But what happened? We already noted that GDI was a key interface for graphics programming. Following the introduction of the (sadly) very slow C++-based GDI extension called GDI+, which was never really a technical breakthrough due to its performance, we could no longer deny that some degree of "interface chaos" was at hand. In fact, it appeared extremely unlikely that GDI, GDI+, DirectDraw, and Direct3D could ever be simultaneously subject to hardware acceleration.
WDDM & DWM—Windows Display Driver Model and Dynamic Windows Manager
Along with a new device driver model, Windows introduced DWM as a way to manage display devices. The whole thing was a little bit tricky, and added a layer of software (and complexity) between windows and the drawing commands on the one hand, and between drivers and devices on the other hand. Direct communications were also interrupted thanks to DWM. In keeping with the motto “everything works at my command” the DWM took over coordination of all the individual graphics interfaces. This changeover also sidelined a major graphics capability, as we’ve already pointed out —namely, hardware acceleration of GDI drawing functions. Completely incomprehensible, but true nevertheless!
Most of the large amounts of memory Vista consumed were cheerfully ascribed to SuperFetch. Sadly, this is only part of the real situation. The omission of 2D hardware acceleration also put the entire burden of handling GDI calls to render window contents onto the CPU. The whole thing wound up in a megabuffer inside the DWM. Complete window renderings would then be turned over to the graphics card. This soon imposed a major bottleneck, because only one window at a time could send GDI commands to the DWM. Asynchronous tasks weren’t allowed, resulting in a lengthy queue of pending service requests. This not only took significant time to handle, it also consumed significant memory because all active windows reside in a DWM memory buffer. With multiple windows at 100MB apiece, it’s not long before memory consumption really racks up. In the most extreme cases, Vista would simply freeze—for example, when jokeware would open window after window after window. Eventually, nothing would work anymore, and you’d have to perform a disruptive shutdown (power off) to regain control over the system.
Summary
- Vista introduces hardware acceleration for the 2.5D Layering Model
- With Aero enabled, ongoing redraw for all Windows contents becomes a thing of the past
- Microsoft omits hardware acceleration for 2D GDI drawing functions
- The DWM can’t work on windows asynchronously, to the profound detriment of graphics performance
- The wait queue inside DWM for GDI commands sucks up huge amounts of RAM



"Our initial analysis has shown that we have no hardware limitations in this area." - u might as well fire your analysis team. Seems to me that AMD just wanted to release the new cards as soon as possible. Thank god this issue can be resolved with a new driver.
I have to say well done to Tom's for finding this, and fair play to AMD for their response. I'm reading their response as "you've found an area we need to improve on, we'll improve it as soon as we can make sure the fix works."

Realistically, what more can you expect a company to do? The PC market is so diverse and made up of so many configurations that a GPU maker cannot test EVERYTHING before releasing a product or else nothing would ever get released. If a problem isn't apparent in day-to-day use and requires a benchmark to notice, how are they supposed to find problems unless someone runs the benchmark and tells them?
If the response was "we don't think there's a problem" then it would be different, but they seem to have held their hands up to the problem and are going to fix it ASAP. Nice one.
Yeah, i agree; this "performance" issue isn't really an issue : no crawling, no bottleneck, even though the difference is measurable, it does not affect much day-to-day operations.
So yes, having AMD/ATI stating they will make an effort specifically to please one Tom's benchmark is a good enough result for now, and tells much about Tom's Hardware prescription power.
The next versions of Firefox and IE are slated to utilise Direct2D
A couple of suggestions:
1. Would be great to have Matrox products included here. Remember, they were the king of the hill back in the 2D heydays (with their Millennium line), and lately they are earning a living by focusing on a couple of non-3D niches. Their main focus now is the multi-monitor business, and 2D acceleration can be very important when dealing with lots of screen space (think a desktop of 10240x3200 pixels, would be a huge amount of pixels to be displayed by the CPU w/o help from the graphics adapter).
2. Also sorely missing (not only from this article, but from the whole Internet) is information about the 2D performance of Java (AWT, Swing, SWT) and .Net (WinForms, WPF) applications. Granted, this might be higher level than the graphics adapters and OS layers discussed in the article, but would be very interesting nonetheless.
Fascinating article with some very surprising results. I look forward to seeing how ATI react to this in terms of drivers updates.
Good article, well writen. Credit to AMD for picking it up and credit to AMD for letting us know that thei're picking it up.
When i installed W7 with my HIS 5850, i notice that when i close windows on my desktop, they start to shrink (like they always do when you close windows) but they seemed to stutter for just a blink, then close the rest of the way. I assumed initially that it was just regular OS behaviour but now i'm wondering...
Nice article,
Would be nice to see a comparison with workstation grade cards, makes you wonder if the performance is artificially limited to help sell the Fire GL etc
Nice article,
Would be nice to see a comparison with workstation grade cards, makes you wonder if the performance is artificially limited to help sell the Fire GL etc
Like stil - I'd be interested in Matrox performance in these tests - I'll never forget switching from my Millennium to my TNT, the drop in 2D performance and image quality was palpable.
Additionally I'd like to see a comparison with an OpenGL implementation of the benchmark - to give an idea of what a fully accelerated 2D implementation might be capable of (granted the OpenGL performance would be dependent on drivers too, but I'd wager that, that part of the drivers has had more effort put into it than the GDI side).
Either way it would be good to get an idea of what numbers we should be getting.
Couldn't agree more. The Matrox cards were for a long period THE 2d cards to have (and upgrade with voodoo 3dfx cards for best alround performance). The Parhelia would be nice to see tested also.
Great article, can't wait till the more tests start running in. Will you make a chart, upgrade this article or make new?
Did AMD mention anything about fixing the "Drivers Not Responding" problem or are they just interested in "increasing performance"? My new system with a HD5770 card keeps giving this error when I'm just using 2D applications and it's so bad that it frequently (2/3 times a night) needs a reboot so I can do anything on my computer. The forums are full of people having this problem yet no one seems to be fixing it.
I remember something about NVidia Quadros, and their gaming equivalent, being the same board, because some of the heavy-duty tinkerers changed his Geforce BIOS in order for it to show on the system as a Quadro, and it performed as such in 2D-heavy software, CAD, such as 3DSMax, SpecView perf... I remember clearly the testing benchmark: the guy ran 8-viewports in AutoCAD, without stuttering issues whatsoever.
Well, the names are blurry, but the idea is perfectly clear to this day: these workstation boards were the same running in our gaming rigs back then, and delivered as such, once "renamed" before the system.
Perhaps neat surprises might come from Geforce 2 GTS generation boards onward, regarding 2D performance. Workstation boards (that are all about 2D high-res displaying) would show their muscle in these 2D tests as well.
Didn´t Sisandra or other software run some 2D benchmarks already?
I'm getting some very different result using a Radeon 5850 on a C2D E8400 (both stock) using the 8.70 RC2 drivers that are available on the net on Win 7 x64, Aero enabled:
http://f.imagehost.org/0165/tom2d.png
Notice how the text performance is way above anything in your tests.
It is available but only on the German version of site:
http://www.tomshardware.com/de/wdd [...] 87-14.html
Anyway, the benchmark does not seem to be reliable. I ran it again and got a very big difference in Splines/Bezier - 3385 vs 16987, Arc/Elipse - 2438 vs 8346, Stretching - 563 vs 1796.
Great article! I've been looking for such an article for years!!
The case is that 2D performance is VERY different and my old Matrox card had been the best in 2D for many years (until 2007 when I upgraded and lost AGP port).
Now I think it is very important to attract attention of vendors to 2D performance - because for years all efforts were made for 3D. I remembered how extremely slowly was Microsoft Office in 2006-2007 drawing transparent objects on both NVIDIA and ATI modern cards...
So I do hope that situation with 2D performance will be better in future - partly thanks to this article.
Now I ran this on my ancient Prescott P4 32bit, Radeon X800 with 2Gb of Ram and Windows 7 and got the following. Definately something up with those modern cards and drivers.... Poor show....
Text: 18288 chars/sec
Line: 14264 lines/sec
Polygon: 5647 polygons/sec
Rectangle: 707 rects/sec
Arc/Ellipse: 5186 ellipses/sec
Blitting: 1844 operations/sec
Stretching: 290 operations/sec
Splines/Bézier: 9581 splines/sec
Score: 647
Did I miss something or was there no mention that the ATI cards dramatically reduce core clock speed and memory for 2D applications where the NVIDIA cards keep the clock speed sthe same for 3D and 2D? Wouldn't this make a difference in benchmarks and testing?
well considering at the time of writing this we're almost two years down the line my 2D performance is still as horrendous as day one. thanks for nothing ATI