DirectX 11 is on its way, but with the slow take up of DX10 in both the home and in the development houses what is it that we should be getting excited about with this new revision? Well, from the looks of things quite a lot, as we learned from Microsoft's Kevin Gee at the recent Nvision conference.
The link between Windows Vista and DirectX 10 is fairly universally seen as one of the big drawbacks to the last iteration of the ubiquitous graphics API.
After all, the percentage of people with DX10 capable hardware is growing exponentially, but the percentage of people using that hardware in collaboration with Microsoft's latest OS is far smaller. The lack of backwards compatibility was a big problem for DX10 and something that has been tackled with DX11.
While you will still need to have Vista as the minimum OS, the package is being released with the next iteration of Windows – Windows 7 – and so will be compatible across both platforms. It's also going to be compatible across the hardware spectrum as well, working with DX10 and DX10.1 specced graphics cards, as well as the new SM5 cards to come.
This means that right from the off there will be a large installed user base ready to use the new API.
Another positive feature from the development point of view is that as a continuation of DirectX 10 anyone familiar with coding for that platform will feel at home with DX11. Fingers crossed this should encourage more devs to pick it up and run with the new feature set for the PC.
New features in DX11
So what are these new features, though? One of the biggest and most relevant to today's PC is the improved multi-threading support.
Originally, Direct3D was focused on performing on a single-core CPU, making the multi-threading support fairly limited. DX11, though, has been designed to more effectively drive the graphics card, using a system with a multi-core CPU at its heart. One of the ways it does this is by supporting multiple rendering contexts.
The main computational work occurs in the primary immediate context. This dictates the timeline for work being submitted to the GPU; running alongside this are the new optional deferred contexts. These are developer-created and enables work associated with each deferred context to be carried out on a separate thread/core, then submitted to the GPU once it's ready for a new task. This is one of those backwards compatible features and so will benefit existing hardware, and should finally make quad-core CPUs more desirable for gamers beyond the willy-waving.
There's also a big change in the render pipeline, too, adding in three new stages: the hull shader, tessellator and domain shader. Listening to developers Microsoft has identified character models and animation as a key battleground in the graphics front.
Today's hugely dense polygon meshes are very memory intensive and the tessellation scheme should reduce this by allowing the work to be done in a single pass, meaning there doesn't need to be any memory in between the stages. According to Kevin Gee it should: "produce richer animations for less memory and less memory bandwidth."
Another boon for the memory consumption of today's games is the improvements in texture compression. The DX11 API gives developers two new compression formats to help with high-quality real-time rendering without sacrificing performance.
There are a host of other new features to the DX11 set, such as Shader Model 5 and Dynamic Shader Linkage, but the latter offers a taste of why DX11 should be the API to move people away from DX9 gaming that DX10 promised to be.