In-Depth with the Windows 8 Consumer Preview
by Andrew Cunningham, Ryan Smith, Kristian Vättö & Jarred Walton on March 9, 2012 10:30 AM EST- Posted in
- Microsoft
- Operating Systems
- Windows
- Windows 8
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.
286 Comments
View All Comments
Andrew.a.cunningham - Friday, March 9, 2012 - link
1) We'll probably do an analysis of that with an RTM version of the OS. I wouldn't expect it to change too drastically from a patched copy of Windows 7.2) Not guaranteed, but probably. When 7 was released, Vista got a Platform Update that added support for DX11, some WDDM 1.1 features, and a few other things: http://support.microsoft.com/kb/971644
Windows 7 is still in its mainstream support phase, so I'd expect those updates to be available after Windows 8 RTM.
R3MF - Friday, March 9, 2012 - link
many thanks Andrew.Andrew.a.cunningham - Friday, March 9, 2012 - link
Welcome! :-)valnar - Friday, March 9, 2012 - link
Isn't the fact that new Windows phone BOMBED in the marketplace enough reason not glorify this crappy GUI? The public has already spoken.And....what makes a good tablet or phone OS (touch screen) does not necessarily make a good desktop OS.
silverblue - Saturday, March 10, 2012 - link
True, however everybody has differing tastes. I don't mind it, personally, and it's not as if the Windows 7 desktop has gone forever.As for Mango, it's not on many devices and hasn't been out long. I also firmly believe that it's the first flavour (sorry) of Windows Phone that Microsoft has truly taken seriously. Give it time. Had dozens of devices been launched with Mango yet sales been poor, I'd have been more inclined to agree with you.
Touch screen technology has been around a while and it's about time that a mainstream OS had extensive functionality in this area.
Subzero0000 - Sunday, March 11, 2012 - link
>Isn't the fact that new Windows phone BOMBED in the marketplace enough reason not glorify this crappy GUI? The public has already spoken.Well, that's exactly why they have to FORCE metro to their biggest userbase (Desktop PC). They want people to get used to metro, then hopefully people get attached to it and choose to buy tablet/phone with metro.
PopinFRESH007 - Sunday, April 15, 2012 - link
+1This is where I think Apple's methodical, very deliberate, well thought out approach is going to win over a lot of people after Windows 8 launches. Microsoft already tried this in reverse order and it was awful until they instantly became irrelevant when the original iPhone launched. They crammed a mouse and keyboard OS into a crappy touchscreen phone and called it a day. Here they are cramming a touchscreen phone/tablet OS pasted on top of a desktop OS and figured out the least amount of work to make it possible to maneuver between the (what feels like) two OS's. When the review consistently has "There are actually two versions of..." you know you have done something wrong as an OS engineer.
I've given Win8 a fair shake, I've really tried to give it an honest everyday usage to give it a fair comparison. I have a Lumia 900 and have been running the consumer preview since it came out. I'm really going the extra mile to give the Metro UI a shot, but it just doesn't scale to a desktop (In the way windows 8 implements it) very well at all. I've used Win8 on a very nice prerelease tablet and it works wonderfully. Microsoft should really take a step back and survey the industry and learn from what has been successful and what has had problems. The iPad is crushing the tablet market because it benefits (like many Apple products) from a halo of the iPhone, iTunes, and iCloud. Google has realized their misstep in segmenting the phone & tablet OS's and I think Microsoft will come to realize that a touchscreen tablet has more in common with a touchscreen smartphone than it does with a keyboard and mouse desktop PC.
The thing about Metro is that it is very simplistic and *could* scale easily. Look at a Windows Phone 7 next to a Windows 8 Tablet and it's ability to scale is obvious. I think the real problem here is Microsoft is taking a Bold, half hearted, All-in, keep some chips in reserve, Go for the gusto, partially move to Metro. They cram it down your throat but don't believe in it enough to completely re-think the OS an move to it. I would like Windows 8 a whole lot more if it was a unified experience with Metro at it's center. The half ***ed cramming of two OS's with different UI's into one cup of tea is what really pushes me away from Windows 8. If they left the core of windows 7 under the hood so any windows 7 app's would run, and provide a simple framework for developers to create "live tile" shortcuts that plugin to the new services that Windows 8 will bring this would be a much better OS. If this is the future, GO FOR IT!! There should not be a control panel for "desktop" and a settings for Metro. There should not be Metro IE 10 and IE 10 for Desktop. If they built API's and service frameworks for developers to bridge Metro UI to C++ code and let developers design their software the best way that suits their needs there would be far better support. The Metro UI as a launcher for native C++ app's and HTML5 Metro apps would be great. This would be especially true if developers could push notifications and information to the live tiles for their app's. Imagine a multiplayer game like Battlefield 3 on Windows 8. On the Metro UI "Start" screen the Live Tile for BF3 would be alive with info from battlelog. So you could easily see if some friends are playing the game, or if there is new content/updates, etc... It would be like having the community features of Steam, without ever having to "Launch" anything. A quick glance at your games area of your Live Tiles and you could see who is online playing what games and quickly join in. The same thing would be true for a more professional app like Photoshop. Imaging if Adobe, using these types of API's could build in collaboration features tied into the Live Tiles & using SkyDrive. You could save an image in your skydive and share it to your fellow team members, then if there are changes and edits all of those peoples Live Tiles for Photoshop would reflect that new information. They have so much potential and are at a solid time to make the leap, the real leap to Metro with less risk. They have a solid "traditional" OS in Windows 7 that they could continue to sell. They also have the ability to really bring a new level of integration that has been absent from Microsoft products. Tie in Xbox Live like they did on Windows Phone 7, and integrate voice chat, the friend list, messaging, etc as system wide services. The list goes on and on with the amount of potential they have to make a seamless experience across all of their platforms from phone, to xbox to tablet to PC. It's sad to see this is the best they can do.
As mentioned above, I think Apples approach of using services like iCloud to bridge your data from a mobile platform to a desktop platform is a better strategy. Really looking at each element of a mobile OS and thinking how that will work on a desktop with a mouse and keyboard; working to merge what makes sense and leaving out what doesn't. I think Apple is also failing at this to some extent as well. They should be working on unifying their "Store's" so I could make an app that when loaded on an iPhone would have the iPhone UI, when loaded on the iPad would have the iPad UI and when loaded on a Mac would have a windowed UI, and the store would serve up the correct parts of the binary depending on if it's on a mobile device like iPhone/iPad or Mac.
/END RANT.
jabber - Friday, March 9, 2012 - link
The feedback has been 100% negative. Really really bad. No question I haven't seen a normal PC user yet that likes it or wants to use it.The feedback for Windows 7 was 90% positive.
Not looking good MS.
futurepastnow - Friday, March 9, 2012 - link
The feedback from the two "normal" non-technical computer users I showed it to was very negative. I let them play with it with no instructions or advice, and they couldn't do anything. It's the least intuitive interface ever.Oddly (or not oddly), the most computer-literate person I showed it to figured he could get used to it, since he uses keyboard commands for everything and they still work. He thinks Microsoft are out of their minds, though.
Perhaps that is Microsoft's problem, I wonder? All of their engineers, testers and QA people know all of the keyboard commands, which puts them in the 1% of computer users. Perhaps if they created a special version of Win8 for interface testing, which *required* mouse input for all actions, they'd seriously reconsider Metro.
Exodite - Saturday, March 10, 2012 - link
I don't know, I'm a software engineer myself and I wouldn't touch W8 with a 10ft pole.I like the minor underlying enhancements to things like the Task Manager and File Transfer dialog, though nothing of that can even begin to make up for the UI clusterfuck.
I run a multiple-display desktop system.
I _like_ nestled folder structures and rely on it to organize.
I prefer minimal clutter on the desktop, to the point the only application icons there are Chrome and MPC-HC, and half a dozen project folders. I also use minimal size icons.
Huge icons in listings, and the enormous amount of whitespace they add, is wasteful and inefficient.
I can't stand that good and intuitive UI elements like radiobuttons and checkboxes are giving way to touch-oriented dragbars, it just underlines wha ta gigantic step backwards the entire Metro experience represents.
Perhaps you're right about technical and professional users being less impacted by the horrors of W8 due to being more comfortable with keyboard shortcuts than users in general, my personal experience isn't enough to say one way or another.
On the other hand I'd argue that that particular group of people are least inclined to accept the changes because they very rarely have to. I don't have to use Windows as a development platform, I could quite trivially move to any *NIX platform of choice.
And if Microsoft doesn't see the light before Windows 7 hits EOL I might as well migrate platform, at least I can set up the UI as I prefer that way.