2D, Acceleration, And Windows: Aren't All Graphics Cards Equal?

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.

Lots of light and shadows, but no 2D hardware acceleration

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!

Bottleneck, Fun Arrestor, and Memory-Eater

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.

Doubling memory consumption doesn’t double your fun (Source: Microsoft)

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
  • fatkid35
    next, toms finds bigfoot eating a chupicabre! WTF? nice catch guys.
    Reply
  • pcxt21
    Very nice work! Until that little update I was ready to put my old Matrox Millennium (1996/1997 I think) 2d accelerator back into my gaming rig...
    Reply
  • For those who still remember Matrox...shouldn't that be included in the test as well? Ancient history shows that it was the best card to be paired with VooDoo when first released...:P
    Reply
  • one-shot
    LOL. The clip of Steve Ballmer looks like an ad from the late Billy Mays. To think he's the CEO of Microsoft after watching that clip makes me laugh. I'm going to watch it again.
    Reply
  • chookman
    I actually went to put a Professional Matrox card (G550 PCI-e) in my Windows 7 machinde for a few more displays... alas it seems most of the range doesnt have Windows 7 drivers yet :(
    Reply
  • killerclick
    Hey, I have GF7050 on my motherboard but I'm not using it!
    Reply
  • belardo
    The sad thing is, as shown was that Windows 1.0~3.0 were never an operating system, ever. 1.0~2.x we're never really used by anyone, yet Amigas and Macs had full GUI functionality since 85/84... Windows3 was at least usable, but still a single-tasking POS, and yet MS-DOS was able to dominate the computer industry... not because of talent, but because of luck, good moves by Gates & Ballmer and the stupidity of IBM. It kind of worked out anyway thou.

    Think about it, it wasn't until the tail-end of 1995, with the release of Windows95, did MS produce an actual GUI OS for the general public, 10 whole years after Apple's Mac and the Amiga by chicken lips. Atari only copied much of the hardware abilities of Amiga with a variant of a MS-DOS clone.

    Only business bought PC-Clones in the 80s~90s, paying around $1500~4000 per desktop. Since IBM didn't make the OS and the hardware was generic, it was super easy for clones to exists. Home users bought Amigas and Macs and laughed as DOS users... but in the end, they lost to the clones.

    At one time in 1990, the Computer Shopper Mag was about 500 pages (phone book) with at least 500 Clone companies advertising.

    Windows is still the Copy-Cat OS. Its still an ugly beast under the hood. At least Windows7 runs good and looks nice.
    Reply
  • Raid3r
    Indeed, way to take one for the team..I am one of those 2d workers and greatly appreciate the foot that was used to affirm the position of 2d recognition on these "new" cards. I can't say it enough.
    Reply
  • micky_lund
    woot for toms...
    catch some more massive companies out, and make them fix up their drivers
    Reply
  • belardo
    I just finished reading this entire article. A good one too guys.

    While I had my rant about old MS days, I did work in the PC field starting with 3.1. We'd benchmark various video cards with programs that would test lines, boxes, etc. This WAS important for some games like DOOM and Quake which were not "true" 3D cards we have today.

    For every new type of PC build or a clients computer, I would save these generic overall system benchmarks. And I *have* notice different 2D performance abilities of computers and the various cards. All super fast compared to the 90s, but I've seen a GF card perform worse than an older ATI, but also an older ATI work a bit better than a newer one. These are all WinXP and don't have anything to do with the problems of Win7 and/or DX11... Part2 isn't out yet... but I would be curious to see if the problems in Win7 happens in Vista with DX11 installed hmmm.

    ATI has been putting all their work into 3D gaming performance, its good to see that they have put a team to fix their 2D issues. There is a good chance that this is a DX11 issue they were not aware of. Since Nvidia doesn't have any DX11 parts (but a DX10.5) - this "bug" doesn't yet show... but I'm speculating of course. :)

    With the eye-candy of Win7, the 2D performance *IS* important for those doing work, watching videos, etc. No good excuse to miss this, and hopefully ATI will have it resolved in 1-2 months.

    PS: Your memory usage chart of vista vs Win7 shows exactly WHY Vist . That is why Windows7 runs pretty good on a 1GB computer, but Vista still needs at least 3GB for a bottom-end PC. My notebook has Win7rc with 1GB, runs fine.

    Hey, will your results sometime include intel graphics? After this bug-issue is resolves, include overall-2D scores with your graphics Charts. :)

    Reply