Getting Dirtier: Graphics

With the majority of the under the hood work focusing on graphics, there’s a lot to cover, so let’s get started.

Although it is being released for Vista too, Windows 7 marks the official introduction of Direct3D 11. As a superset of Direct3D 10.1, Direct3D 11 adds support for tessellation, multi-threaded rendering, and GPGPU abilities via the Compute Shader. We’ve already covered a great deal on Direct3D 11, so please see our introduction article on it for more details.

Next up we have the Windows Display Driver Model 1.1, which in turn is the lynchpin for several other graphics related features. WDDM 1.1 itself is not particularly impressive, but it’s what it allows that is. For all practical purposes, all we need to know about WDDM 1.1 is that it’s a minor revision of WDDM that requires DX10-class hardware (rather than DX9-class on WDDM 1.0) and as such allows the operating system additional features.

So what can you do with WDDM 1.1? For starters, you can significantly curtail memory usage for the Desktop Window Manager when it’s enabled for Aero. With the DWM enabled, every window is an uncompressed texture in order for it to be processed by the video card. The problem with this is that when it comes to windows drawn with Microsoft’s older GDI/GDI+ technology, the DWM needs two copies of the data – one on the video card for rendering purposes, and another copy in main memory for the DWM to work on. Because these textures are uncompressed, the amount of memory a single window takes is the product of its size, specifically: Width X Height x 4 bytes of color information.


Image courtesy Microsoft

Furthermore while a single window may not be too bad, additional windows compound this problem. In this case Microsoft lists the memory consumption of 15 1600x1200 windows at 109MB. This isn’t a problem for the video card, which has plenty of memory dedicated for the task, but for system memory it’s another issue since it’s eating into memory that could be used for something else. With WDDM 1.1, Microsoft has been able remove the copy of the texture from system memory and operate solely on the contents in video memory. As a result the memory consumption of Windows is immediately reduced, potentially by hundreds of megabytes.

What makes this even more interesting is how this was accomplished. With WinXP, GDI+ was partially accelerated, but this ability was lost to little fanfare when the DWM was introduced for Vista and thereby made GDI+ acceleration impossible, pushing all GDI work back to the CPU. This in turn is responsible for the need for a local copy of GDI and GDI+ windows and the increased memory usage of Vista, as reading data back from the video memory for the CPU to work on is too slow to be practical. The solution as it turns out is that by reintroducing GDI acceleration, the amount of read-backs can be minimized to the point that a local copy of the texture is no longer necessary. Now GDI isn’t completely accelerated, only the most common calls are, but this is enough that when the least common calls trigger a read-back, the performance hit is negligible.

This is one of the bigger changes in Windows to get memory consumption under control. The problem was particularly bad on netbooks and other systems with integrated graphics, as the video memory is the system memory, resulting in two copies of the texture being in the system memory (something such a machine probably has little of in the first place). The fact that this requires a DX10-class card with a WDDM 1.1 driver needs to be reinforced however – this won’t be of any help for systems with lesser GPUs, such as Atoms paired with the 945G chipset, as the GMA 950 GPU on that chipset is only DX9-class. NVIDIA, no doubt, is grinning from ear to ear on this one.

The other big trick as a result of WDDM 1.1 is that support for heterogeneous display drivers has returned. With WDDM 1.0 and its homogenous driver requirement, computers were limited to using video cards that would work with a single driver – in turn limiting a computer to video cards from a single vendor. With heterogeneous driver support, computers are once again free to use non-matching video cards, so long as they have a WDDM 1.1 driver. Besides that, this also is a boon for GPGPU use, as GPUs continue to interface with Windows via WDDM regardless of whether they’re actually displaying something or not. For example, this would allow NVIDIA to sell video cards as GPGPU processors to ATI owners, and vice versa.

WDDM 1.1 also brings a few lesser features to Windows 7. The DWM can now run in DX10 mode and new controls are introduced for aspect ratio scaling and controlling monitor modes.

Moving on from WDDM 1.1, Microsoft has also introduced some changes to GDI that do not require new display drivers. Along with requiring a local copy of window textures, the GDI stack was locked so that only a single GDI application could access it at a time. The GDI stack has been rebuilt so that the lock is more or less removed. Multiple GDI applications can now issue commands to it at the same time, and this is all pushed off to the video card to be its problem.



Images courtesy Microsoft

Unfortunately Microsoft has not provided us with any examples of this in action, so we’re not sure just what the real-world benefit is.

Next up, more DRM. Although we’re not entirely sure what has been changed, Microsoft has told us that they have made some changes with respect to DRM and GPU acceleration. Previously some applications playing DRMed content needed to switch to overlay mode to ensure the content was protected the entire way through. Likely this is a new low-level API for such functionality; Microsoft’s notes mention a standardized API for CPU to GPU encryption.

Last but not least, we have two new high-level graphics APIs in Windows 7. The first is Direct2D, the successor to GDI and a replacement for some Direct3D functionality. Like Direct3D, Direct2D is a fully hardware accelerated API, but it’s only for 2D operations. When Microsoft deprecated DirectDraw, the intention was for developers to use Direct3D for all of their 2D needs, but this never quite worked out as well as they intended. So now we have Direct2D, which gives developers a dedicated 2D API once again, along with a clear replacement for GDI.

Also introduced is an API specifically for text, DirectWrite. Where Direct2D works on 2D primitives, DirectWrite is responsible for the hardware anti-aliasing of text. NVIDIA sent us some documentation on the matter, and apparently the anti-aliasing method used (YDirection Antialiasing) can provide even better smoothing than ClearType can alone. It does not sound like any Windows components are currently using DirectWrite however.


Hardware font anti-aliasing in action. Image courtesy NVIDIA

We should note that while the “Direct” name implies these APIs are a part of DirectX, all of the material we have on the matter only mentions Windows 7. They may not be part of DirectX, in which case they would not be added to Vista as part of DirectX 11.

Getting Dirty: What’s Changing Under the Hood Windows Media : New Codecs, New Looks, New Features
Comments Locked

121 Comments

View All Comments

  • Gary Key - Thursday, May 7, 2009 - link

    Actually, the public release of the 8.612 betas work fine with the HD 4770. AMD made a couple of changes right before they were posted on the site. :)
  • CSMR - Wednesday, May 6, 2009 - link

    Best source of information on Windows 7 by far. Nice work!
  • ssj4Gogeta - Wednesday, May 6, 2009 - link

    In the article you said that the "Jump Menus" have their roots in OS X? Not at all. They've been their for years. The only example I can think of at this time is Winamp. It had a "jump menu" in Windows 98 for controlling playback.
  • Axell - Wednesday, May 6, 2009 - link

    Well, this is actually Windows 7 Release Candidate. There won't be a second RC, so it's "Release Candidate" only, no RC1 like the title and text suggests.
  • vectorm12 - Wednesday, May 6, 2009 - link

    Just for the sake of argument.

    Ever thought about how long it usually takes for MS to actually make their OS:es work well? Doesn't anyone remember what a abysmal OS XP was before SP1 let alone SP2(which in my opinion was the point where I felt confident enough to upgrade from win2k). I'm starting to wonder if people have actually forgotten how much they where complaining about XP before SP1&2 or if they just don't want to remember. What about the security vulnerabilities that still plague XP? The fact that both Vista and Win7 improves on these seem to have been lost in the quest to keep XP alive.

    After all do you hear Apple users complaining about 10.5.6 being significantly slower in many respects than 10.4? The fact that 10.4 in my opinion had a bunch of features lost in 10.5 that where really useful doesn't seem to bother them half as much. In the end I think this whole discussion has become more of a "hey I'm cool for bashing Microsoft and Vista rather than keeping an open mind and actually seeing the improvements they make"

    How long did it take for Microsoft to make windows 2k a better OS than NT4.0 besides the USB support (which for the first couple of years was more or less pointless anyway).

    Windows 95 and RC2 and so on. I mean it usually takes years for MS to actually make a OS superior to the older version.

    What sets Windows7 apart from Vista in my opinion is just that.

    Windows 7 may as well be a dressed up/optimized/"insert random comment" version of Windows Vista. Sure they could have made major GUI changes and feature updates to Vista through service packs etc but the fact is that when people hear or think vista it usually equals "dog turd" or worse and usually that is because it's become cool to bash Vista. In my opinion I wouldn't hesitate to run Vista SP1 on our studio computer where I work but unfortunately most of the software required for production purposes require specific software configurations which means Vista isn't supported other than in the latest releases.

    The name change is a chance for people to try what in many ways is a vastly improved OS without having that association in mind when doing so. Sure Windows 7 is still more bloated and in certain areas probably slower than XP because of bloated code/new functions etc but the fact is Microsoft has actually taken a lot of great functionality in vista and(most likely taken inspiration from Mac OS in certain areas) and improved upon it even further.

    I for one want a Microsoft OS for my gaming computer. I can't be bothered running Linux and wine just to play WoW and run the Adobe suite. Given the choice I'm going for Win7 rather than XP or vista, it's safer, I've got performance to spare and there's nothing wrong with a little eyecandy to make things look more exciting.

    Macs are fine but to be honest I don't like OS x THAT much to pay the premium.

    Linux works perfectly on my work computer and on the servers I run at work or on my laptop that I use to surf the web.
  • leexgx - Wednesday, May 6, 2009 - link

    apart from some drivers XP has allways worked well for me (+ i was behind an router so RDP basid worms was not an problem),

    Vista is slugish and bloted for the most part and it allways will be as thay not port stuff to vista that are makeing windows 7 run far more smoother,

    i have loaded win 7 onto an amd64 3000+ 2ghz, 2gb ram, it works well there is One small bug not sure why but it thinks i got 16gb installed in an socket 754 socket lol, but lists 2gb useable (at least Win7 now Shows Both numbers useable and installed as on SP1 for vista that was an joke hideing useable ram) need to report that to MS but not sure where i submit that
  • Lexington02 - Wednesday, May 6, 2009 - link

    :face palm:
    You have 32 bit and that is not MS's fault for 32bit portion, it is pure math. Also 64 bit will always be slower than 32 bit on the same specs. Think about it, 64 is twice as big as 32 bit...
  • Bmadd - Wednesday, May 6, 2009 - link

    If any of that was refering to my post my Thanks MS was for giving me the features i wanted and not having to go to win7. Not that they make bad products. I love the one ppl "hate" the most. PS xp needs to be laid to rest, please
  • iAURA - Wednesday, May 6, 2009 - link

    I'm in the same boat as the above poster, all I will get from W7 is a "funner" GUI and DX11, but hey, there's still tons of game being released as DX9 games.
  • ssj4Gogeta - Wednesday, May 6, 2009 - link

    DX11 will be released for Vista as well.

Log in

Don't have an account? Sign up now