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

  • phexac - Friday, March 9, 2012 - link

    I most definitely plan on skipping Win8, even though I upgraded to Vista and Win7 the day they came out.

    To know how bad this new disjointed Metro-Desktop environment will be, all you have to do is look at the POSITIVE feedback Win8 is receiving. Apparently, the best that can be said about Metro is that you can be fine with it and it will not create significant problems for that you cannot get around. Where is the feedback of all the great new improvements Metro will bring to your Windows experience? There is none. The best possible scenario for Metro is that, with some practice and adjustment, it will not completely fuck up your computing experience. No thanks. I will opt to stay in full desktop environment that does not force me to deal with a screen filled with ugly tiles that lead to gimped mail and other apps designed for a phone. When I am on a desktop, I want to use a desktop interface and those things called "applications." Hint--they are like apps, except with more functionality to take advantage of greater flexibility of the PC.

    Metro seems to be a product of semi-competent management under pressure to do SOMETHING, ANYTHING at all to justify its job in the face of competition that is putting out meaningful well-received innovation. This situation is all too common at Microsoft it seems.

    I foresee Win8 being an even bigger flop than Vista. The fact that Metro interface failed miserably in the phone market (devices it's supposed to be best on) is a pretty good indicator that it fucking blows and has no traction with consumers. The logical conclusion from that is certainly not trying to pawn it off on your desktop users.

    I hope this product leads to MS losing a shitton of money so that they hopefully learn to listen to feedback of their customer base. Do you guys remember the extensive consumer input and feedback that MS used to design Windows 7? That led to a great product. None of that seems to be happening with Win8, where MS is back to its internal ideas. We all know how good that tends to work for them as of late.

    I can see the commercials now: "Hi, I'm a Mac, and I have a User Interface that is not fucking retarded."
  • PopinFRESH007 - Sunday, April 15, 2012 - link

    I love this analysis. You are truly inspired. :)
  • antef - Friday, March 9, 2012 - link

    Did I read this right? If you use File History you can't also create system images using Windows Backup? So in Windows 7 they give me an awesome, easy, built-in system imaging tool, but crap file backup so I have to find my own utilities for that, then in Win 8 they give me awesome file backup but take away system imaging? Why in the world could that not be integrated with the new feature?
  • Andrew.a.cunningham - Saturday, March 10, 2012 - link

    You can still make images and backups with the "Windows 7 File Transfer" control panel, which is identical to the Windows Backup tool. You just can't schedule both W7 File Transfer backups AND File History backups.
  • antef - Saturday, March 10, 2012 - link

    Thanks for the reply (didn't expect one this many pages deep!). That is still a shame, I like my weekly scheduled system image backups so that if something goes wrong with the system it's easy to get back to how things were. And I would be very interested in keeping File History enabled too. It seems like an unnecessary limitation and keeps it from still being competitive with Time Machine. Let's say I do enable the system image backups. Can I still get to Win7-like "previous versions" of files at all, or would that all be shut off?
  • Malih - Saturday, March 10, 2012 - link

    I don't understand why some people don't like or even hate the Metro interface. It's a beautiful, and depends on how you're using it, can be your source of quick info (with the widgets and all that) without having to open many apps at the same time.

    I do think it would work better on desktop or laptop if there's a device like the Magic Trackpad for PC.

    I like Metro, and even contemplated on buying the Nokia Lumia 800, if only its price (the Int'l version) is a bit lower.
  • SunLord - Saturday, March 10, 2012 - link

    It's not that hard to understand metro sucks with a mouse on my desktop and is rather disjointed but It's actually not that bad with a touch pad on my laptop where you can do swipes and other gestures so it's probably pretty sweet with a tablet/slate or a all-in-one with a touchscreen that takes advantage of the touch based interface that metro is.
  • B3an - Saturday, March 10, 2012 - link

    Complete BS.

    Metro is faster and more configurable than the Start menu ever was, as this article also points out. Getting stuff done on Win 8 is faster than it ever was in 7. People need to stop trying to use Win 8 like 7 and use it for how it's intended. It's an improvement. Not that people like you will ever give it a chance. Too scared of change. Go back to DOS.
  • TEAMSWITCHER - Saturday, March 10, 2012 - link

    You're wrong. The first time I did a search for "Settings" in Metro I was presented with a ugly grid of small icons and text. Many of the icons were duplicates and some I swear haven't changed since Windows XP. I thought to myself - "Wow, Metro just vomited on my 27" display."

    If you honestly think that Metro is going to compete visually against the iPad you must be partially blind. Just take a look at the blocky green slider buttons in Metro and compare them to the awesome round and shaded slider buttons of iOS. Metro looks like crap!

    Stop saying good things about it - it's the worst OS Microsoft ever created!
  • stephenbrooks - Saturday, March 10, 2012 - link

    1. It would be nice if there was a special "maximise" button that turned a window from your desktop into a Metro "app" that showed up on the list of running apps. What I like about Metro is that Microsoft are embracing the fact that some things are better fullscreen, so there's a selection between screens and then overlapped windows on a desktop within one of those.

    2. It would also be nice if they had skinned the desktop to look Metro-ish, instead of the utterly different look and feel of the two at the moment. Just needs everything to have square non-bevelled borders + black background really and use solid shading rather than gradients or fancy stuff.

    The big reason why I think #1 isn't happening, and the problem with Metro generally, is that it only works with apps written against Microsoft's very specific Metro system. I don't know if they intend to keep this dichotomy forever. They can't migrate entirely to Metro because then developers would have to put all their half-made and experimental programs through the microsoft app approval system! Plus there are things that don't lend themselves to going in the Windows Store, like programs written internally in a company, various sorts of scripts, bespoke simulations used in R&D, etc.

    In fact all the *clever* stuff people do with PCs doesn't work in the consumerised app store/tablet model as it stands.

Log in

Don't have an account? Sign up now