There will be no need for developers to poll graphics hardware for specific capabilities in the next version of Direct3D, as Microsoft and Vista will be doing all the work for them -- essentially putting a stop to the fast pace of feature introduction in graphics hardware.
This was just one of many relevations about the new revision of the graphics API made by Rudolph Balaz, product manager for Microsoft, at this year's Professional Developers Conference on Wednesday.
Direct3D is a special interface designed by Microsoft that allows developers to abstract 3D graphics programming from the underlying hardware. First introduced with Windows 95 11 years ago, Direct3D and its parent API, DirectX, have been a mainstay in the 3D games development industry.
As of DirectX 10, to be introduced in Windows Vista, 3D features will be bound to version numbers of Direct3D. What this means is that all 3D vendors will support the same features, guaranteeing compatibility across the board. Although this may sound great, allowing for a more standardised games development environment, the reality is that Microsoft will soon be regulating the introduction of 3D features, leaving companies such as NVIDIA and ATI at the mercy of the software giant.
Vista and DirectX 10 aren't all doom and gloom for the games industry, According to Balaz, they will in fact do much for both the performance and versatility of graphics hardware. For instance, graphics processors, known as GPUs, will have scheduling and sharing capabilities under Vista, much like CPUs have now. Users will be able to run multiple 3D applications that will be able to share memory, GPU cycles and other resources, something that is currently impossible under previous Windows versions.
There's also backward-support for DirectX 6, 7 and DirectDraw, and Vista will feature and extended version of Direct3D 9, known as D3D9Ex, that developers can play around with now. D3D9Ex offers functionality including frame statistics; the ability to render a frame multiple times instead of reprocessing it in hardware and more specific error and state checking, to the point where the software can inform a developer if their code is crashing the hardware.
None of these features however compare to the resource sharing in D3D9Ex/D3D10. Thanks to the new, shared architecture in the APIs, it will be possible to install new drivers without rebooting; perform 'video card-only' reboots and isolate the display driver from the rest of the system. With Vista, it will be almost impossible for the display driver to bring the rest of the system down with it -- something that is a serious problem and common occurence in current versions of Windows. This reliability and stability is also thanks to the Vista Display Driver Model (VDDM), which will eventually replace the current display driver model in Windows XP.
Direct3D 10 means quite a lot to both developers and gamers. In his PDC presentation, Balaz explained some of the internals of the new API, which departs significantly enough from DirectX 9 that all future versions of the programming interface will be based on D3D 10.
And D3D 10 does have some interesting changes. While the D3D 10 rendering pipeline is similar to D3D 9, it introduces a new shader, known as the Geometry Shader. This shader allows developers to perform functions on whole polygons (and series of polygons), instead just pixels or just verticies. This new shader promises to dramatically increase the performance of many 3D functions such as cube-mapping.
Another part of the Geometry Shader is the Stream Out functionality that allows the GPU to recycle graphics data without needing the CPU. Not only is this a boon to performance, it will also allow for particle systems completely independant of the CPU.
The presentation, in all its completeness, failed to touch on the implementation of OpenGL in Windows Vista. When questioned, Balaz explained that OpenGL would be in Vista in three forms: straight software, 'wrapped' around Direct3D and finally run through an installable client driver.
D3D 10 will require VDDM to work, so we won't be seeing it before Vista. D3D 10 has been developed in collaboration with Independent Hardware Vendors (IHVs) such as NVIDIA and ATI, but obviously only to a degree seeing as feature sets from these vendors will now be locked to (what will apparently be yearly) DirectX versioning. Balaz admitted that this course of feature introduction would require Microsoft to work more closely with IHVs and would result in faster revisions and releases of DirectX.
Although gamers will have to wait until next year, developers will get their first taste of D3D 10 in Beta 2 of Windows Vista.