Microsoft has unveiled DirectX 11, the company's next-generation graphics pipeline, at its annual XNA GameFest developer conference in Seattle, Washington.
Details of the new API are fairly scant at the moment, as presentations from the developer-only conference aren't available to the public yet. However, Microsoft says that D3D11 "extends and enhances" the D3D10 pipeline with new hardware and API calls.
As a result of this, you can expect DirectX 11 not to be supported on operating systems preceding Windows Vista, which will no doubt upset those that believe Vista is a hunk o' junk. On another note, hardware vendors will need to support both DirectX 10 and DirectX 10.1 in order to support for DirectX 11, so the boys in green will have to support D3D10.1 at some point down the line.
With that out of the way, it's worth looking at what has been discussed, as a couple of new features have been outlined in a bit more detail. The first of those is Tessellation and Microsoft describes it as an "incredible step in the evolution of graphics.
ATI was the first to introduce a dedicated tessellation unit in its ill-fated R600 graphics processor, and it too said that it was a major evolution in graphics fidelity. I believe that it will be, but sadly with R600 (and RV670) it was only usable in D3D9 programming environments.
As a result, we're yet to see any games make heavy use of tessellation and it wasn't until the release of the RV770 graphics processor (we'll have our belated architecture analysis finished soon) that the unit was addressable in DirectX 10/10.1 environments. Even then, it's not a part of the current graphics pipeline so developers have to access it with unconventional calls; therefore, the move to include it as a part of the API is a big step forwards in my opinion, as all hardware vendors will have to support the feature and it'll be easily accessible for through conventional API calls.
The second major feature that has been talked about, and the one that excites me the most, is the Compute Shader. Past Direct3D APIs have had some constraints put on developers in order to achieve optimal rendering performance, but with the Compute Shader, Microsoft says that developers will be able to "access this computational capability without so many constraints.
The track outline continues by saying that " It opens the door to operations on more general data-structures than just arrays, and to new classes of algorithms as well. Key features include: communication of data between threads, and a rich set of primitives for random access and streaming I/O operations. These features enable faster and simpler implementations of techniques already in use, such as imaging and post-processing effects, and also open up new techniques that become feasible on Direct3D 11-class hardware.
Given the way DirectX 10 was received when it was first released—where hardware just wasn't fast enough to benefit from the potential
graphical improvements offered by the new API—we're equally sceptical about how DirectX 11 will be received when it comes to market. Developers are starting to make headway with DirectX 10, but even so the differences in image quality between D3D9 and D3D10 aren't as massive as some would have you believe. You can expect the same when DirectX 11 is released in 2009 (although there's no official confirmation from Microsoft), as developers should be pretty good at writing highly optimised DirectX 10 code at that point.
What DirectX 11 does represent though is a good step forwards for the development community, as more functionality and complexity is being exposed for those that want and need it.
Discuss in the forums