...It adds scheduling and memory virtualization capabilities to the graphics subsystem and foregoes the current DirectX practice of using "capability bits" to indicate which features are active on the current hardware. Instead, Direct3D 10 defines a minimum standard of hardware capabilities which must be supported for a display system to be "Direct3D 10 compatible". Microsoft's goal is to create an environment for developers and designers where they can be assured that the input they provide will be rendered in exactly the same fashion on all supported graphics cards. This has been a recurring problem with the DirectX 9 model, where different video cards have produced different results, thus requiring fixes keyed to specific cards to be produced by developers.
According to Microsoft, Direct3D 10 will be able to display some graphics up to 8 times faster than DirectX 9.0c because of the new improved Windows Display Driver Model. In addition, Direct3D 10 incorporates Microsoft's High Level Shader Language 4.0. However, Direct3D 10 is not backward compatible like prior versions of DirectX. The same game will not be compatible with both Direct3D 10 and Direct3D 9 or below. Games would need to be developed for both APIs, one version for Direct3D 9 and below if targeting Windows versions prior to Windows Vista and another version using Direct3D 10 if targeting only Windows Vista. Windows Vista does, however, contain a backward compatible Direct3D 9 implementation.
The Direct3D 10 API introduces unified vertex and pixel shaders. In addition, it also supports Geometry Shaders, which operate on entire geometric primitives (points, lines, and triangles), and can allow calculations based on adjacent primitives as well. The output of the geometry shader can be passed directly onwards to the rasterizer for interpolation and pixel shading, or written to a vertex buffer (known as 'stream out') to be fed back into the beginning of the pipeline.
D3D10 functionality requires WDDM (Windows Display Driver Model) and new graphics hardware. The graphics hardware will be pre-emptively multithreaded, to allow multiple threads to use the GPU in turns. It will also provide paging of the graphics memory.
The version of Direct3D 9 available in Windows Vista is called Direct3D 9Ex. This modified API also uses the WDDM and allows Direct3D 9 applications to access some of the features available in Windows Vista such as cross-process shared surfaces, managed graphics memory, prioritization of resources, text anti-aliasing, advanced gamma functions, and device removal management.