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

  • ssj4Gogeta - Wednesday, May 6, 2009 - link

    Exactly what SkullOne said. I also use Linux and know in what areas it's better than Windows. But I also know there are so many other areas in which it's a pain to use.
  • SkullOne - Wednesday, May 6, 2009 - link

    Spoken like a true jaded Linux fanboi. People like you are the reason Linux will never be mainstream. You think you're so high and mighty (or more secure) when you're not.

    Thanks for the laugh. I'd love for you to back up ANY of your comments with facts.

    Disclaimer: I use Linux and Windows every day in production environments. They both have their place in the world.
  • snookie - Wednesday, May 6, 2009 - link

    This blaming of Microsoft's Vista woes on Apple and a few commercials is just ridiculous. Most people pay no attention to such things those few that see them. It also has nothing to do with why Vista was a flop in the consumer space and an even bigger flop in the corporate marketplace. Certainly nothing to do with so many companies offering XP downgrades. Vista is a lousy product plain and simple and if there is any marketing fault it is Windows with their arcane multiple editions at ever increasing prices designed to milk customers. People aren't stupid even if they are computer novices. They know when they have been had, something is difficult to use, or not reliable. This is the result of years of piling layer upon layer of code on an ever expanding code base with no effort to start over and offer a clean efficient OS. The ONLY thing Windows 7 has over Vista is the interface is simplified and gets out of your way better. It can SEEM to run faster all it wants but test after test shows Windows 7 is barely faster than Vista at many tasks and in fact slower at some. Microsoft is in real trouble here because years of cruft code have left a huge amount of unusable code that consumes resources, adds instability, and provides entry to all sorts of malware. There is no way this codebase can be made to work efficiently with the quad and higher core procs that will be even more common in the next few years and what is Microsoft going to do then? They have three failed ad campaigns under their belt so their years of lying to their customers has fallen flat and corporate customers long ago stopped believing anything Microsoft said which is why open source that doesn't lock you in is becoming more and more prevalent. Microsoft has met the enemy and it is them.

    I notice you run Microsoft ads btw.
  • ssj4Gogeta - Wednesday, May 6, 2009 - link

    I know so many people who haven't even TRIED Vista once and they keep telling other people how bad it is.
  • formulav8 - Wednesday, May 6, 2009 - link

    I agree almost 100%. I have customers who wants to make sure they have/get windows xp because vista is so bad. If you ask them why, they basically say its because a friend of a friends father said it was slow.

    I do know one of the biggest downfalls for Microsoft and Vista was allowing Intel to pressure them into getting Vista Certified compatability with those trashy integrated chipsets of Intel. So many users have those trash Intel xtreme/gma video chipsets and they had very bad Aero interface performance.

    Anyways, I use both Vista and Windows7 daily. I like Vista better than XP overall and like Windows7 thus far compared to Vista.

    I really think Windows7 will end up being one of the best oses made, even when compared to osx and windows xp.


    Jason
  • vectorm12 - Wednesday, May 6, 2009 - link

    Personally I never took to windows XP nor vista(had it been tecnologically possible I would still have been on WinNT 4.0), however as I bought a new PC I hit the RAM cap of 32bit XP Pro and therefore felt I had no decent choice than to move to 64bit Vista.

    My Vista experience has been far from great, reinstalls, crap drivers from nVidia and ATI not to mention a bunch of other third parties. However it hasn't been all bad, vista has quite a few ideas that just didn't work out just the way I would have liked.

    Look at the save file dialogs for example where you actually had to click a button to browse directories other than the default one.

    I've now been running on Win7 x64 since build 7k reinstalling almost every time a new version has been leaked and I'd say most of the things that bugged me with Vista has been corrected.

    At this point the only thing I still want for Win7 is the "old" style control panel and an integration of the "administrator tools" into the control panel.

    Looking at the big picture I say Win7 (even in BETA) is the best modern OS Microsoft has produced. The performance issues of Vista have been dealt with to a large degree. Drivers seem to work better and the most annoying GUI issues have been dealt with.

    All Microsoft can do now to make me feel completely satisfied with my computing experience over the last few years is give me a BIG rebate on the upgrade to Windows7 from my old Vista licence.
  • johnsonx - Wednesday, May 6, 2009 - link

    I just upgraded my XP-era Vista box (2.2ghz single core A64, 2GB RAM, VIA AGP mobo, X1950Pro) to Windows 7 tonight, and it was absolutely painless. It certainly seems faster than Vista, in particular I notice that my e-mail client and web browser launch and become ready much more quickly.

    I'm finding the new UI features to be actually useful as well, rather than Vista's pointless eye candy. I often have 6 or 7 browser tabs and several e-mail windows open, along with another couple of apps, and the new task bar makes it much easier to switch among them. I can see if I have any new e-mail just by moving the mouse over the client icon on the taskbar, no need to even click on it. Aero-Peek makes gadgets more usable too, since you can see them without minimizing every window. AeroSnap is great too. Only AeroShake defies explanation, but perhaps time will prove that one too.

    I was never a Vista hater, though it certainly had it's frustrations. But it only took me 20 minutes with Windows 7 to never want to touch another Vista box again.

    I was initially concerned that ATI's Windows 7 driver only supports cards back to the HD2000 series (presumably because the WDDM 1.1 driver model requires DX10 class hardware, which my X1950Pro is not), but the MS provided driver had no problems with Half-Life 2 (the only game I happen to have installed on this box) or any of the fancy GUI features.

    The only weirdness so far as that at last boot up Windows told me a driver for Trend Micro Internet Security was being blocked due to a compatibility problem with Windows 7. That's understandable, except for the fact that I don't have any Trend Micro product installed, nor has one ever been installed in the past. It wouldn't tell me exactly what driver it was complaining about though, so I can't investigate further (I suspect some log somewhere will tell me exactly what driver it blocked).

    One taskbar UI incontinuity: so much now works by simply moving the mouse over the various items, it suddenly seems odd to have to actually click on the start menu to get it to open.
  • johnsonx - Wednesday, May 6, 2009 - link

    ok, it turns out the offending driver was TMCOMM.SYS, and it really was from Trend Micro. I have a vague recollection of running an online scan once a couple years ago (trying to scan a friend's external drive), so I guess it was trend micro and it left that driver around.
    As with most such things, the blocking event was neatly logged in the system event log.
  • thebeastie - Wednesday, May 6, 2009 - link

    Wow, this new OS looks like Vista but with all the latest patches,IE8 and DirectX11. Then just a few cosmetic graphics changes.
    I AM EXCITED!
    Come on what else did you expect? Maybe its something that has stuck deep in side people since they were kids around new PCs but when it comes to Microsoft new OSes people are just getting more and more nieve.

  • thebeastie - Wednesday, May 6, 2009 - link

    More tests appear to be slower in Windows 7 then Vista etc.
    Things like reltek sound performance can be put to just as much to the 3rd party drivers then anything else.

    I can't believe how many people I have talked to that use but hate Vista and expect Windows server to be light on its feet as XP but with the features of Vista, they are behaving as its something they could bet their life on.
    What does it take for people to get some some technical intuition?
    I mean thats what people really really really need here.

Log in

Don't have an account? Sign up now