|
WDDM 2.1
Lastly, we come to one final major change which will be seen in DirectX 10.1 - Whereas DirectX 10 will see the introduction of support for WDDM (Windows Driver Display Model) 2.0, DirectX 10.1 moves this on a step as the driver model moves up to 2.1. Again, be sure to have read our look at WDDM 2.0 before you proceed to understand what this driver model is all about. Needless to say, WDDM 2.1 does everything WDDM 2.0 does, but with a couple of significant additions, mainly aimed at improving performance on DirectX 10.1 capable GPUs further still.
First on the list for WDDM 2.1 is further improvements to context switching abilities - This was improved significantly with the introduction of WDDM 2.0, where context switching could be performed after processing a command or triangle (compared to what is required prior to WDDM 2.0, where whole buffers needed to be completely worked through before a context switch could be performed). With WDDM 2.1 however, context switching can now be performed instantly. This means that a context switch is guaranteed when requested with WDDM 2.1, which isn't necessarily the case under WDDM 2.0 when long shaders or large triangles are being processed, whilst retaining the same average switching time between 2.0 and 2.1.
Due to the amount of threads in use and work being done in parallel at any one time on a GPU, efficient context switching (which basically involves switching between the various threads the hardware is working on) is a vital part of processing work on a GPU, so the removal of as much overhead as possible when context switching is most welcome. This is all the more important under Windows Vista, as the possibility of the GPU having to work on more than one application that requires graphics rendering in some shape or form becomes greater, and thus the need to shift seamlessly between different rendering workloads without one application taking up all of the GPU's rendering time increases further still.
The other major addition to WDDM 2.1 is a change to the way the GPU and its driver handles page faults - In WDDM 2.0, a page fault (i.e. a request for data that is not currently loaded into memory) triggers a rather long-winded process, which involves the GPU stalling, informing the Operating System of the missing page, and then restarting again once the correct page (piece of data) has been loaded into memory. In WDDM 2.1, things are handled far more gracefully, thanks to the GPU having additional support to handle page faulting and virtual memory allocated on a per process basis. This means that when a page fault crops up, the GPU doesnt have to stall, and instead the improved context switching capabilities we mentioned earlier are put to good use to switch to the next item on the agenda that needs to be worked on rather than sitting around idly waiting for the correct data to be made available.
As we mentioned earlier in this article, the implementation of WDDM is likely to be one of the main reasons why we don't see DirectX 10.1 compliant hardware springing up any time soon - Quite simply, solving these context switching and page faulting issues isn't a trivial task from either a hardware or driver point of view, and thus a massive amouont of work and resources will have to go into implementing the full 2.1 Windows Driver Display Model as required to gain compliancy. Add to that the necessity to make the other changes required of this point release of the API, and the constant demand of users to see increased performance across the board, in the enthusiast space in particular, then you can see that getting everything together to create a compliant part is going to be a tall order for a little while yet.
Conclusions
Until we've seen both Windows Vista and DirectX 10 running on compliant hardware, with fully WDDM drivers, in the flesh, then there certainly isn't much we can conclude about DirectX 10.1 and how it will improve and impact upon the future of the API and hardware which relies upon it. Certainly, although I'm sure this point release will become another important marketing tick box, it doesn't feature a great deal that will send the jaws of graphics enthusiasts around the world dropping particularly.
Of course, this focus on what the developers want and need over additional eye candy isn't a bad thing - Quite the opposite in fact. It certainly seems that the focus of the DirectX team circa DirectX 10 is to try and solve as many of those age-old graphics rendering issues as they can, allowing developers to wring every last drop of functionality and performance out of their titles which should, in turn, give us some far better gaming experiences on the PC in future.
That isn't to say that additional image quality-related features are non-existent in DirectX 10.1. In particular, the addition of full application control for anti-aliasing is an intriguing one, and it'll certainly be interesting to see how (and if) this is put to comprehensive use in game titles further down the line. We'll also have to wait and see what the increased float and rendering pipeline precisions hold in store for us from an image quality point of view, and perhaps more importantly how any increases in precision will impact upon performance in future generations of hardware.
Certainly, when you look at the thoughts behind DirectX 10.1 as a whole, you can safely say that the consumer 3D graphics industry isn't looking like slowing down any time soon, which means plenty more excitement, arguments and competition for quite some time to come - Heaven for 3D graphics geeks like you and I. |
|