Top 10 Windows 7 Features #6: DirectX 11
Early in the history of Windows Vista's promotional campaign, before the first public betas, Microsoft's plan was to create a desktop environment unlike any other, replete with such features as 3D rendered icons and buttons, and windows that zoomed into and off the workspace as though they occupied the space in front of the user's face. That was a pretty tall order, and we expected Microsoft to scale back from that goal somewhat. But for several months, journalists were given heads-up notices that there would be several tiers of Windows performance -- at one point, as many as five -- and that the highest tier, described as a kind of desktop nirvana, would be facilitated by the 3D rendering technology being called DirectX 10.
DirectX is a series of graphics libraries that enable Windows programs to "write" graphics data directly to screen elements, rather than to ordinary windows. While the operating system's principal graphics library since version 3.0 has been the Graphics Device Interface (GDI), its handles on memory are tied to window identities and locations. But it's DirectX that makes it possible for a 3D rendered game to be played in the Windows OS without having to be "in" a window like, say, Excel 2003.
Microsoft's original idea for version 10 of the library in Vista was to not only create a higher-level "user experience" based on DirectX, but to help its hardware partners to make DX10 a milestone to which computer owners could aspire. For the full Windows experience, both ATI and Nvidia promised, you needed a graphics driver that was DX10-capable; and Microsoft had been working on a special marketing logo just for that highest tier, something that would have used "Aero" as the carrot and a less-than-stellar basic operating environment for non-upgraded users as the stick.
The consumer saw right through Microsoft's plan even before the Vista RTM date, which was one reason why the graphics card manufacturers ended up being too slow to upgrade their Windows drivers, even as much as a year after Vista's release. Now with Windows 7 on the horizon, DirectX 11 will actually play a significant role in the operating system, and not for marketing reasons. But the company doesn't want to repeat its mistakes with DX10 -- in fact, it's been so shy about even the appearance of a repeat that whether or not it would even ship DX11 with Windows 7 was not even an absolute certainty until the Release Candidate went live earlier this week. Even then, Betanews double-checked to make sure the inclusion wasn't an accident; it wasn't. Microsoft has confirmed to Betanews this week that DX11 is a reality.
The biggest evidence that Microsoft has learned its lesson comes from the fact that DirectX 11 will work on graphics cards rated for DX9 and DX10. During the Vista era, to run DX10 you needed a DX10 card. This doesn't mean that all of DX11's features run only on a DX11 card, but what it does mean is that it doesn't exclude older hardware and, in so doing, rate it a second-class citizen.
What the new drivers will bring to the table immediately is something I will call true multithreading (at the risk of getting into the same trouble I stepped into 21 years ago when I said Windows 386 did not do "true multitasking"). Essentially, it enables DirectX for the first time to actually make full use of multiple cores and multiple program threads, without developers having to employ a kind of flagging technique to accomplish it.
The best illustration of this I've found is a beautiful rendering test by game developer Rory Driscoll. Here, after explaining why DirectX's existing multithreading support can actually slow processing down due to the crazy way it handles scheduling, Driscoll demonstrates how the new architecture lets game developers plan out a more sensible schedule of rendering threads, with some "immediate" and others "deferred," with DX11 marshalling the distribution of the sequence automatically.
Granted, the changeover is not automatic; it's an architectural adjustment that, like any form of explicit parallelism, developers have to make themselves. So the real payoff from this will come in a later generation of games and graphics software, but we may see at least some immediate improvement from Windows 7 itself. That improvement will directly impact rendering speed, efficiency, and fluidity.
But one dramatic change to efficiency and fluidity that gamers may notice right away will come from DirectX 11's first-time support for a rendering concept that has at last emerged from the laboratories. It's Microsoft's implementation of tessellation, which in geometry (especially the type M. C. Escher loved) refers to the creation of tiles of varying shapes designed to cover a surface completely. Imagine the copper shields that were welded together to form the surface of the Statue of Liberty, and you'll get the idea.
Common 3D modeling today involves taking a complex model and breaking it down into simpler shapes, or subdivisions -- what developers call sub-Ds. If you want a model to appear detailed, naturally, you create more subdivisions, made up of seemingly infinitely more triangles and quads. But a new intermediate form of processing during the rendering stage enables very detailed models that are being rendered at a distance -- where such detail might not matter anyway -- to be simplified, using a process that compiles sub-Ds into tessellations that are just detailed enough to fit the scene at the moment. Microsoft introduced this rendering scheme as part of DX11 during a company game developers' conference late last year. More complete details on the procedure may be found in the new Direct3D 11 SDK.
On Thursday, a Microsoft spokesperson told Betanews that DirectX 11 will also feature improvements to the general mathematical library that will help enable developers of all kinds to make GPUs accessible for everyday computing purposes, not just 3D rendering and gaming -- what hardware engineers are calling General Purpose GPU (GPGPU). "Rather than just focusing on pixels and triangles," the spokesperson told us, "the compute shader is intended to take advantage of the graphics card as a parallel processor."
All of this is being introduced to Windows 7, but also to the Windows user -- and this time, not so much as an incentive to get a new PC. Now, users won't have to join a club to get benefits. From our perspective, maybe Microsoft has finally "joined the club."
Download Windows 7 Release Candidate 64-bit from Fileforum now.