DirectX 10 and its features
The Birth of DirectX 10
DirectX 10 is set to ship at the beginning of next year with the first public release version of Windows Vista. It will change the way software developers create games for Windows, and hopefully it will benefit us gamers in terms of better visuals while also delivering better performance.
On the graphics side, DirectX 10 has been reworked from the ground up: no aspect of the API was left untouched on the graphics side. The driver model has been completely reworked, under DX10 the driver is split into two parts: the user mode driver and the kernel mode driver. The kernel mode driver is kept distinct from the user mode driver to enhance stability. The idea here is to keep user mode drivers for Direct3D, OpenGL, and DirectX video playback (among others) isolated from the kernel driver for the operating system, so that one can’t affect the other.
Under the current driver model, the majority of the graphics driver resides in the operating system’s kernel space, so if the driver were to crash while gaming for instance, it could cause the entire operating system to crash along with it. By separating the driver into distinct parts, the hope is that DirectX 10 will deliver better overall system stability than previous versions of DirectX.
Another change in DirectX 10 is that Microsoft has removed entirely the fixed function pipeline, everything is programmable. Software developers will use shaders to emulate the fixed function pipeline for older, legacy apps that use fixed function.
DirectX 10: Windows Vista Only
One thing to note about DirectX 10 is that it will only be made available for Windows Vista. Microsoft has no plans to make DX10 compatible with Windows XP or any other previous operating systems. The one thing that Microsoft has done with Vista is incorporate a subsystem that will comply with DirectX 9.0 graphics hardware due to the population of users that still own DX9-compliant hardware. This subsystem will be named none other than DirectX 9.0L. So, in short, if you have DirectX 9 hardware, you will be using DirectX 9.0L as your API in Windows Vista.Brand new Geometry Shader added to the middle of the pipeline, in between the vertex and pixel shaders.
DirectX 9L will support all the fancy eye candy effects Microsoft has integrated into Vista’s Aero Glass interface, so DX9 users will still get the 3D desktop and all its effects under DirectX 9.0L. According to Microsoft, it would be difficult to port DirectX 10 to older operating systems like Windows XP due to the new driver model.
When developing DirectX 10, Microsoft set out to create a new set of APIs for developers that have less overhead and constraints. This in turn will allow hardware to stretch its legs and realize its full potential, not to be bogged down by processor and small batch limitations. According to Microsoft, with DirectX 9.0 we had far too many limitations, so creating this set of APIs in DirectX 10 from scratch was the best way to go. And this makes sense for Microsoft, since Vista is dubbed to be the ultimate gaming operating system, built for gamers.
Below are just some of the new features found in DirectX 10. Just keep in mind that even things that have previous version (i.e. Shader Model 3.0) have been completely reworked from beginning to end in DirectX 10. Some of the features include:
Increased efficiency, fixing the “small batch problem”. (Microsoft claims performance improvements up to six times that of DierctX 9 hardware running on Windows XP because of this). As a result, less overhead from processor (CPU offloading to the GPU), giving the ability to pump out more objects onto the screen. This increases realism and performance in newer games.
Virtualized memory for the GPU. The video card will be able to use space in system RAM to store information that does not fit on local video card memory.
Shader Model 4.0 has a broader instruction set including integer and bitwise instruction, transferring more work to the GPU.
Fixed function pipeline is gone. Everything is now programmable (done with shaders).
Consistency: Capability bits are gone, these were used to tell DirectX what features the GPU did and did not support. With cap bits gone, this leaves hardware manufacturers with fewer ways to deviate from spec. These stricter feature requirements ensure that video cards will all have the same basic requirements; there are only a few optional features such as multisample anti-aliasing. (For example in the early days of DirectX 9, there was lots of variation on floating-point formats (FP16, FP24, FP32) which led to confusion among software developers.)
These are the some of the main features of DirectX 10. In the following pages we will go in depth with some of these new features and give some in depth analysis as to what this will bring to the table with Vista and in the future.