How Vista Enables Windows Aero - New Document Available

Windows Aero is Vista's new user interface and is based on desktop composition which is the process where each window and the desktop background is drawn separately and then composed by using the 3‑D graphics engine to create the desktop image a user sees.

Vista's process for automatically enabling Aero is relatively involved, and to date, the process hasn't been very clear. But now that Vista is out the door - I've had time to catch up on my to-do list which includes writing a white paper describing the process. I’ve also included a trouble shooting guide.  You can find the doc here.

https://www.microsoft.com/whdc/device/display/aero_rules.mspx

Feel free to post any question you may have.  I'll keep track and update my blog with answers and update the doc as necessary.

One question I receive frequently is "Why is this so complex? Why can't Vista simply enable Aero on any system? "  The short answer is that Aero has some fundamental requirements (see the doc), and some performance requirements.  For example, Aero won't run at all without a WDDM driver.

Here is the long answer - In contrast to XP's GDI based "owner draw" model, Vista uses a retained graphics model to mange windows and the desktop.  Vista's model and other composition based features (collectively called ‘Aero’) are considerably more expensive in terms of resource utilization than XP.  This includes the use of system and graphics memory for storing textures; CPU time to manage the composition process; video memory bandwidth; and GPU time.  

These costs buy a lot of benefits: smoother screen updates, much fewer windowing artifacts and ‘tears’, ability to easily support high DPI (even for legacy applications), no inter frame tearing with video playback, enablement of attractive new visual effects that please users (flip 3D, transparency, thumbnails, window effects, etc.)

Originally in 2004, we assumed that Aero was so expensive that it would only be available on systems with higher performing discrete graphics cards.  Our first implementations only ran well on mid-range graphics adapters (or better). 

Our challenge was to strike a balance between ensuring a good user experience and enabling Aero broadly.  The more broadly enabled, the larger the risk of users being unhappy with the user experience due to the demanding nature of composition. In contrast raising the bar to ensure a good user experience would have meant that fewer people would enjoy the benefits of composition and raise the costs of systems designed to run Aero.

The Desktop Window Manager team (including Greg Schechter, and many others), the DX team, the video playback team, and the client performance team spent a lot of time optimizing the DWM and other components so that Aero would run well on a broad range of hardware: The big push was for Aero to work well on mid range UMA graphics adapters.  

After a lot of work, we achieved a pretty good balance: Contrary to popular belief, with single monitor, Aero runs well on low cost UMA graphics (especially for day to day computing).    

With more capable graphics (such as those scoring 4 or better in the Windows Experience Index graphics score) Aero is very robust and will handle large dual monitors. With today's high end graphics cards, Aero really sings, nicely handling large dual monitors with heavy workloads.

We achieved this balance three ways (1) by working diligently with IHV’s to make drivers better (2) by making many performance and efficiently improvements in the DWM and related components (3) and by using user research to gain a good understanding of how users perceive composition performance so we could accurately judge the bar (which had started out very high).

This has resulted in a relatively complex set of conditions under which Vista will automatically enable Aero.  The goal is to enable it when the user experience would be acceptable and when it is better to have it enabled than disabled.  This also means that sometimes the DWM will scale back the user experience (turning off transparency, or disabling composition all together) when performance suffers.  Of course, this will happen sooner and more often on less capable hardware than on more capable hardware and is greatly dependant on the user scenario.

Comments

  • Anonymous
    December 19, 2006
    Windows Aero is Vista's new user interface and is based on desktop composition which is the process where

  • Anonymous
    December 20, 2006
    I'm still confused about the compositing stuff. For instance, OS X always has compositing and transparency on. For all systems. Heck, even the GPU accelerated bit only requires 16meg VRAM. And OS X still had to deal with legacy QuickDraw, which has much of the same, if not all, of the limitations GDI has.

  • Anonymous
    December 20, 2006
    Hi Rosyna, To be honest, I'm not deeply familari with OS X, but apple does have control of their hardware and can gaurantee that their composition based window manager always runs on HW that will support it well. One thing we had to design and plan for was upgrades: we wanted as many people as possible to have Aero automaticaly, but avoid cases where holder less capeable hardwarwe realy couldn't support it well. However, new system that ship with Vista, or that are Vista premium capeable are guaranteed to run Aero - they will have the requreist performance, and memory so that Vista will automaticaly enable Aero on those systems - e.g. Aero will be 'always on' for these machines. With respect to GDI, it and GDI+ are still fully supported on Vista with or without Aero.   RGR :)

  • Anonymous
    December 20, 2006
    I really hope you guys get a chance to do a wobbly windows powertoy for the DCM :-) I remember when it was first shown at WinHEC and you had nice flag type effect when windows were dragged.  Linux/XGL has taken that and run with it.  Here's hoping you have something cooking

  • Anonymous
    December 20, 2006
    Hi James :)  Larry Osterman and the shell folks have alreayd commented on that.   http://blogs.msdn.com/larryosterman/archive/2006/09/15/756372.aspx http://shellrevealed.com/blogs/shellblog/archive/2006/09/15/Where-are-the-floppy-windows_3F00_.aspx Best Regards RGR

  • Anonymous
    December 21, 2006
    I do wonder about the hardware support issue. http://www.microsoft.com/windowsvista/getready/capable.mspx seems to say Vista won't even run if you don't have a DirectX 9 capable GPU, which I don't understand. But, for reference, OS X still supported compositing/transparency on a 233mhz G3 with a video card that had 6MB of VRAM (ATI Rage). Granted, it wasn't the fasted thing ever, but it was still very useable. More so if you gave it maximum ram (which ranged from 640 to 1gig).

  • Anonymous
    December 22, 2006
    Hi Rosyna :) Actually, Vista will run just fine on a DX7 or DX8 graphics card and with XP style graphics drivers.  However, Aero isn't supported on these cards.  I don't know enough about OSX to provide any feedback to how well it performs, but I take your word for it that it can run composition on relatively low end hardware. One thing we focused on was scaling: it is one thing to run composition (even with transparency) with a small number of windows (3 or 4), but we've see some older and slower graphics adapters start to struggle visible when the window count climbs to 8 to 10 with poor performance making the system unusable with 16 or so open windows. While Vista won't enable Aero automatically on cards that don't meet the rules, users can always turn it on themselves.  Some will be happy with the experience, but some may not.  I've seen Aero run nicely on older graphics cards with only 32 or even 16 MB of graphics memory - but this was for light workloads and a small monitor.   More robust workloads require more capable HW. Given Vista is a new OS, we had the opportunity to design for modern graphics cards: Aero requires a DX9 card simply because that's what we chose to do - the market need to run on cards that were three or more years old really didn't justify the extra development and test effort it would have required to support them. In short, I think you will find that Aero runs quite nicely on the vast majority of DX9 capable discrete graphics cards, and on the DX9 capable integrated graphics solutions from ATI, Intel and NVIDIA.   Best Regards RGR

  • Anonymous
    December 23, 2006
    The comment has been removed

  • Anonymous
    December 23, 2006
    Err, if there's no software renderer for Aero. The thing about me saying vista requires a DX9 video card was due to how I read "Vista capable PC". To me the word "capable" meant that if the PC didn't meet those requirements, the PC was incapable of running vista at all.

  • Anonymous
    December 24, 2006
    The comment has been removed

  • Anonymous
    December 26, 2006
    Rosyna: this question was recently discussed on windowsvistablog.com.  I'll include some of my comments from there (which I think apply here equally well): If you look at OS X, the graphics technologies it uses have evolved gradually over several releases, whereas Vista is a large leap over that which was available in XP.  For example, Quartz Extreme--the technology you're talking about, which requires 16 MB of VRAM, 32 MB recommended--wasn't introduced until 10.2, and Quartz 2D Extreme wasn't introduced until 10.4--and even then, it is turned off by default, and is only available for video cards that support it (i.e., newer video cards).  Arstechnica has a nice article on this.  From that perspective, the requirements of OS X and Vista are not much different (and to Vista's credit, it also supports DX9-capable integrated graphics sets--the Intel GMA 950, etc.--that rely on system memory).  However, Vista's graphics and composition technologies are more advanced than that of OS X--though we're not really seeing much of that power being put to use just yet.  DirectX 10 will also take it to the next level, with GPU scheduling and other things that will be unquestionably innovative in the market. With either system, though, the more VRAM you have, the better.  Consider that 1920x1200x32 is already 9 MB, and you can see how quickly the system soaks up VRAM (and then system RAM).  Most important perf-wise in the video subsystem for each OS is the amount of VRAM and the VRAM bandwidth and latency, then the system RAM and its bandwidth and latency. At any rate, from 10,000 feet, yes, it looks like Vista requires more to do what OS X is already doing.  But dig a little deeper, and you'll see that not only is Vista more advanced "under the hood," the requirements for both Vista and OS X (Quartz 2D Extreme enabled to compare the two more evenly) are more or less the same.

  • Anonymous
    December 26, 2006
    Hi Joseph, Take a look at the Aero troublshooting section in this document: http://www.microsoft.com/whdc/device/display/aero_rules.mspx Let me know if it doesn't help you. RGR

  • Anonymous
    December 26, 2006
    bluvg, a link to the discussion? Quartz Extreme is optional. It allows the system to do some compositing on the GPU. If the GPU doesn't meet the minimum requirements, everything still works and is run in software and not hardware. Quartz 2D Extreme is off mostly due to massive GPU driver bugs. While the GPU manufacturers advertise cards being capable of X or Y, the drivers themselves hate it when both X and Y is attempted at the same time. They fail to manage the memory correctly and often cause kernel panics. Sadly, Nvidia/ATi is responsible for this code. I think Vista will have this problem too, once application developers start to REALLY push the GPU. We've had to do a lot of things that slow down CoreImage in our apps that use it because the ATI drivers kept kernel panicking. Very annoying. My point is that OS X has at least 3 to 4 code paths for all graphics stuff. 1. GPU 2. AltiVec (and a lesser amount, SSE, since it doesn't give as much as a boost) 3. Dual processors 4.  everything else. OS X will attempt everything to get a piece of code running, no matter how slow it is. Some apps can query the system to see if X feature will be on the GPU. if it's useless eyecandy (like the dashboard ripple), app developers can choose not to use the eye candy.