Starting with Windows Vista, Microsoft began the first steps of what was to be a long campaign to change how Windows would interact with GPUs. XP, itself based on Windows 2000, used a driver model that predated the term “GPU” itself. While graphics rendering was near and dear to the Windows kernel for performance reasons, Windows still treated the video card as more of a peripheral than a processing device. And as time went on that peripheral model became increasingly bogged down as GPUs became more advanced in features, and more important altogether.

With Vista the GPU became a second-class device, behind only the CPU itself. Windows made significant use of the GPU from the moment you turned it on due to the GPU acceleration of Aero, and under the hood things were even more complex. At the API level Microsoft added Direct3D 10, a major shift in the graphics API that greatly simplified the process of handing work off to the GPU and at the same time exposed the programmability of GPUs like never before. Finally, at the lowest levels of the operating system Microsoft completely overhauled how Windows interacts with GPUs by implementing the Windows Display Driver Model (WDDM) 1.0, which is still the basis of how Windows interacts with modern GPUs.

One of the big goals of WDDM was that it would be extensible, so that Microsoft and GPU vendors could add features over time in a reasonable way. WDDM 1.0 brought sweeping changes that among other things took most GPU management away from games and put the OS in charge of it, greatly improving support for and the performance of running multiple 3D applications at once. In 2009, Windows 7 brought WDDM 1.1, which focused on reducing system memory usage by removing redundant data, and support for heterogeneous GPU configurations, a change that precluded modern iGPU + dGPU technologies such as NVIDIA’s Optimus. Finally, with Windows 8, Microsoft will be introducing the next iteration of WDDM, WDDM 1.2.

So what does WDDM 1.2 bring to the table? Besides underlying support for Direct3D 11.1 (more on that in a bit), it has several features that for the sake of brevity we’ll reduce to three major features. The first is power management, through a driver feature Microsoft calls DirectFlip. DirectFlip is a change in the Aero composition model that reduces the amount of memory bandwidth used when playing videos back in full screen and thereby reducing memory power consumption, as power consumption there has become a larger piece of total system power consumption in the age of GPU video decoders. At the same time WDDM 1.2 will also introduce a new overarching GPU power management model that will see video drivers work with the operating system to better utilize F-states and P-states to keep the GPU asleep more often.

The second major feature of WDDM 1.2 is GPU preemption. As of WDDM 1.1, applications effectively use a cooperative multitasking model to share the GPU; this model makes sharing the GPU entirely reliant on well-behaved applications and can break down in the face of complex GPU computing uses. With WDDM 1.2, Windows will be introducing a new pre-emptive multitasking model, which will have Windows preemptively switching out GPU tasks in order to ensure that every application gets its fair share of execution time and that the amount of time any application spends waiting for GPU access (access latency) is kept low. The latter is particularly important for a touch environment, where a high access latency can render a device unresponsive. Overall this is a shift that is very similar to how Windows itself evolved from Windows 3.1 to Windows 95, as Microsoft moved from a cooperative multitasking to a preemptive multitasking scheduling system for scheduling applications on the CPU.

The final major feature of WDDM 1.2 is improved fault tolerance, which goes hand in hand with GPU preemption. With WDDM 1.0 Microsoft introduced the GPU Timeout and Detection Recovery (TDR) mechanism, which caught the GPU if it hung and reset it, thereby providing a basic framework to keep GPU hangs from bringing down the entire system. TDR itself isn’t perfect however; the reset mechanism requires resetting the whole GPU, and given the use of cooperative multitasking, TDR cannot tell the difference between a hung application and one that is not yet ready to yield. To solve the former, Microsoft will be breaking down GPUs on a logical level – MS calls these GPU engines – with WDDM 1.2 being able to do a per-engine reset to fix the affected engine, rather than needing to reset the entire GPU. As for unyielding programs, this is largely solved as a consequence of pre-emption: unyielding programs can choose to opt-out of TDR so long as they make themselves capable of being quickly preempted, which will allow those programs full access to the GPU while not preventing the OS and other applications from using the GPU for their own needs. All of these features will be available for GPUs implementing WDDM 1.2.

And what will be implementing WDDM 1.2? While it’s still unclear at this time where SoC GPUs will stand, so far all Direct3D 11 compliant GPUs will be implementing WDDM 1.2 support; so this means the GeForce 400 series and better, the Radeon HD 5000 series and better, and the forthcoming Intel HD Graphics 4000 that will debut with Ivy Bridge later this year. This is consistent with how WDDM has been developed, which has been to target features that were added in previous generations of GPUs in order let a large hardware base build up before the software begins using it. WDDM 1.0 and 1.1 drivers and GPUs will still continue to work in Windows 8, they just won't support the new features in WDDM 1.2.

Direct3D 11.1

Now that we’ve had a chance to take a look at the underpinnings of Windows 8’s graphical stack, how will things be changing at the API layer? As many of our readers are well aware, Windows 8 will be introducing the next version of Direct3D, Direct3D 11.1. As the name implies, D3D 11.1 is a relatively minor update to Direct3D similar in scope to Direct3D 10.1 in 2008, and will focus on adding a few features to Direct3D rather than bringing in any kind of sweeping change.

So what can we look forward to in Direct3D 11.1? The biggest end user feature is going to be the formalization of Stereo 3D support into the D3D API. Currently S3D is achieved by either partially going around D3D to present a quad buffer to games and applications that directly support S3D, or in the case of driver/middleware enhancement manipulating the rendering process itself to get the desired results. Formalizing S3D won’t remove the need for middleware to enable S3D on games that choose not to implement it, but for games that do choose to directly implement it such as Deus Ex, it will now be possible to do this through Direct3D and to do so more easily.


AMD’s Radeon HD 7970: The First Direct3D 11.1 Compliant Video Card

The rest of the D3D11.1 feature set otherwise isn’t going to be nearly as visible, but it will still be important for various uses. Interoperability between graphics, video, and compute is going to be greatly improved, allowing video via Media Foundation to be sent through pixel and compute shaders, among other things. Meanwhile Target Independent Rasterization will provide high performance, high quality GPU based anti-aliasing for Direct2D, allowing rasterization to move from the CPU to the GPU. Elsewhere developers will be getting some new tools: some new buffer commands should give developers a few more tricks to work with, shader tracing will enable developers to better trace shader performance through Direct3D itself, and double precision (FP64) support will be coming to pixel shaders on hardware that has FP64 support, allowing developers to use higher precision shaders.

Many of these features should be available on existing Direct3D11 compliant GPUs in some manner, particularly S3D support. The only thing we’re aware of that absolutely requires new hardware support is Target Independent Rasterization; for that you will need the latest generation of GPUs such as the Radeon HD 7000 series, or as widely expected, the Kepler generation of GeForces.

Under the Hood: Networking Improvements and Drivers Metro Apps Overview: Mail, Calendar, Messaging, People, Photos, and Camera
Comments Locked

286 Comments

View All Comments

  • hampuras - Monday, March 12, 2012 - link

    Will the desktop UI be color managed? Can we now use it properly on a wide gamut display?
  • moto47 - Monday, March 12, 2012 - link

    I dont understand this constant love of Intel, and disrespect to AMD. Does Intel make better cpu's? Depends on what you consider "better". If by better, you mean it can perform faster on high-level programs that 98% of the worlds population will never use, yup its better. For the vast majority of people that use their computers to surf the internet, maybe use an office-type program, or something of that nature, no, AMD is just as good, especially when you factor in the MASSIVE price difference.

    This is an old analogy, but a good one. If the automobile industry was like the CPU industry: Intel is Ferrari, AMD is Honda...they both get you to work or the store, the Ferrari will get you there much faster, the Honda saved you enough money that you can actually do some shopping.

    Or maybe it could just be said like this: Intel is for the rich folks, AMD is for the rest of us.
  • richough3 - Monday, March 12, 2012 - link

    I still miss the close button, but I guess grabbing the top of the application and dragging it to the bottom is okay enough for closing it. But some of the full programs running full screen look more primative. Here's a Windows 8 Start button you can use.

    http://www.stardock.com/products/start8/
  • 86waterpumper - Monday, March 12, 2012 - link

    "This is an old analogy, but a good one. If the automobile industry was like the CPU industry: Intel is Ferrari, AMD is Honda..."

    No it's certainly not a good analogy. Why? If AMD was like Honda in the respect that it saved energy then it would be a winner in my book. However, not only are they slower than intel in alot of cases but they suck at efficiency.
    This will continue to hurt amd especially in the laptop arena until they can get a handle on it. A perfect example of this is the total and complete lack of smaller laptops using the Llano chip. I hope they do figure it out and get back in the game. I like having amd as a option, their older designs are probably still a good option for someone who is really funds limited.
  • medi01 - Tuesday, March 13, 2012 - link

    Typical Liano system eats 35-40 watts. (a bit more @ Anand tech, where they for some "misterious reason" use 1000W PSU with it).
    Try to beat that with anything Intel has to offer.
  • myhipsi - Monday, March 12, 2012 - link

    There are many features like the new task manager, refresh and reset and storage spaces, faster boot times, and, of course, the under-the-hood changes that are great improvements/additions over Windows 7. However, with respect to desktop usage, I have one major problem with Windows 8, and it's a big one; the Metro UI.

    Based on feedback (and my own experience), it seems that the majority of desktop users dislike the Metro GUI, and my intuition tells me that in the future, most tablet/phone (touch based) users are really going to dislike being bounced from the Metro UI into the "desktop" style UI when performing certain tasks like changing settings, etc.

    Instead of compromising the product to a one size fits all "solution", I think Microsoft should really consider marketing two different versions of Windows 8: "Windows 8 Touch" and "Windows 8 Desktop", for example. Or, simply allow the user to choose which version they want upon installation.

    The idea that I will be forced into the Metro UI with Windows 8 is a deal breaker for me. Lets hope that MS gets enough negative feedback on this that they reconsider and allow people the choice.
  • Silma - Monday, March 12, 2012 - link

    A uselful complement to this otherwise great preview would be to have feedback on professional use in a few different jobs:
    - power user office worker ( working mostly with Office Suite + sap/salesforce/whatever)
    - power user media / content producer (working mostly with Adobe Creative Suite)
    - power developer (working mostly with Visual Studio + sql )
    - probably using 1 or 2 monitors.
    and see in what ways Windows 8 is better or worse than Windows 7.
    Perhaps you could ask for your reader's input in those scenarii. Personally I won't have time to setup a fully working computer with all additional software so this would be of great interest to me.
  • Burticus - Monday, March 12, 2012 - link

    MS better grow a clue... I don't want a tablet OS on my PC. There better be a way to permanently turn off all that stupid big icon crap and give me a regular desktop. If not... looks like I'll be on 7 until the next thing comes along. Hey I rode XP for 10 years and skipped Vista entirely.

    I installed it on a VM and played with it. So far, meh. If I had a tablet it might be more interesting.
  • Geofram - Monday, March 12, 2012 - link

    I've got one real question about Metro that doesn't seem to ever get specifically addressed.

    How does it do at multi-tasking?

    The biggest problem I see with it, is that the full-screen everything approach is not a good one when you're running multiple applications. In fact, I don't even know how you could do that using it. I haven't tried it extensively, but if you're looking for things to review, that's my biggest question.

    I don't care about launching a single app. I care about how it will fare when I have a game running on one monitor, a web page on another, and music playing in the background. How do you switch between them easily in Metro? How do you start them and put them on the correct monitors? I don't see any discussion about that, and yet, it's the core issue to me.
  • Andrew.a.cunningham - Monday, March 12, 2012 - link

    All Metro apps run on one monitor, even if you have a multiple-monitor setup. Metro Snap provides the only multitasking available in Metro. App switching is handled similarly to Android and iOS, and is done via the app drawer on the left side of the screen. Switching the screen Metro appears on can be done in a few ways, and is covered in the review.

    Multitasking on the desktop is the same as it was in Windows 7. In a multi-monitor setup, the desktop will always be running on the second (or third, or whatever) monitor, and you can leave desktop applications running on it at the same time as you use Metro apps (thus allowing you to keep a web page open on your second monitor while you play a game either on the desktop and in Metro). Music can play in the background in both desktop and Metro apps. I think all of this was covered in the review, most of it on the first three pages.

    As with most things, what you think about how all of this works is largely dictated by what you think about Metro.

Log in

Don't have an account? Sign up now