CONTINUED:
Windows Vista -- a preview
All hail the graphics processing unit
Direct3D10 finally completes the break from the legacy fixed-function pipeline. Developers will use the programmable pipeline to emulate the older, fixed-function steps. Additionally, Microsoft had to rethink its display driver model now that the entire desktop is going 3D. The video card isn't just for games anymore. When you have a 3D desktop and give each application its own 3D window, the display driver has to be flexible and stable enough to handle the video card's increased role in the system. Microsoft has split up the display driver to increase stability, to ensure that the 3D desktop stays up in the event that a game or another application crashes due to a graphics error. This change also means that Microsoft will not release DirectX 10 for Windows XP, because many of the Direct3D10 improvements will need the new Windows Vista Display Driver Model.
Opening up the video card to more applications will require Vista to give the GPU more system resources and allow applications to share the hardware. The biggest change for game developers will be virtualised memory for the GPU. The video card will now have its own space in system RAM to store information that can't fit on local video card memory. High-end video cards ship with 256MB or 512MB of memory, but games can still use the extra space in system memory to store large chunks of information, like textures.
Epic Games founder Tim Sweeney explains, "Virtual texturing eliminates the video memory bottleneck on texture size; whereas in DirectX 9 the size of textures we can use with full performance is limited by the amount of video memory, in DirectX 10 it is only limited by total system memory." Furthermore, Tim predicts that virtual memory will enable a "2X-4X increase in texture usage in games, which will be great for Unreal Engine 3 games, where textures are often authored at very high resolutions like 2048x2048-pixels, and then scaled down on lower-end systems to improve performance."
Setting standards and improving performance
Video cards will now have strict feature-set requirements for Direct3D10. A video card must have the full feature set to be DirectX 10 approved. This isn't much different from the existing model, in which a card has to have certain features to be DirectX 9.0c or Shader Model 2.0 compliant, but Microsoft has made the specification much more detailed to remove any chance of hardware variation. Differences in how Nvidia and ATI cards handled floating-point precision created extra work for developers in the past, but tighter Direct3D10 specifications will help remove ambiguous areas in hardware design. Having consistent hardware means programmers can avoid spending development time on customising games for cards that don't have all the necessary features or have odd implementations.
Microsoft plans to accelerate its Direct3D release schedule to keep up as the graphics manufacturers release new GPUs with advanced features. If everything goes as planned, the game developer will have to learn only Direct3D11, instead of figuring out the quirks for two different GPUs when Nvidia and ATI release a new round of technology. However, this change might not mean the end of writing code for specific GPUs. While developers can count on DX10 to define card features sets, the Microsoft DirectX team admits that "we may see hardware vendors putting in additional differentiating features, which developers may want to natively support."
DirectX 10 will increase game performance by as much as six to eight times. Much of that will be accomplished with smarter resource management, improving API and driver efficiencies, and moving more work from the CPU to the GPU. "The entire API and pipeline have been redesigned from the ground up to maximise performance and minimise CPU and bandwidth overhead," according to Microsoft. Furthermore, "the idea behind D3D10 is to maximise what the GPU can do without CPU interaction, and when the CPU is needed it's a fast, streamlined, pipeline-able operation." Giving the GPU more efficient ways to write and access data will reduce CPU overhead costs by keeping more of the work on the video card.
Here's a list of several new Direct3D 10 performance improvements GameSpot was able to wrestle out of the DirectX 10 team:
• New constant buffers maximise efficiency of sending shader constant data (light positions, material information, etc) to the GPU by eliminating redundancy and massively reducing the number of calls to the runtime and driver.
• New state objects significantly reduce the amount of API calls and bandwidth, tracking, mapping and validation overhead needed in the runtime and driver to change GPU device state.
• Texture arrays enable the GPU to swap materials on-the-fly without having to swap those textures from the CPU.
• Resource views enable super-fast binding of resources to the pipeline by informing the system early-on about its intended use. This also vastly reduces the cost of hazard-tracking and validation.
• Predicated rendering allows draw calls to be automatically deactivated based on the results of previous rendering -- without any CPU interaction. This enables rapid occlusion culling to avoid rendering objects that aren't visible. Shader Model 4.0 provides a more robust instruction set with capabilities like integer and bitwise instructions, enabling more work to be transferred to the GPU.
• The D3D runtime itself has been completely refactored to maximise performance and configurability by the application.
It remains to be seen just how well actual DX10 graphics hardware will be able to handle the additional work, but we've seen in the past that ATI and Nvidia have been able to deliver whenever games have shifted work from the CPU to the GPU.
Sarju Shah and James Yu report for GameSpot.
More about Software
- Obama in sex video shocker? Oh wait, it's just spam September 11, 2008
- No black holes from Large Hadron Collider, say scientists September 10, 2008
- Michael Moore to premiere film online September 05, 2008
- Images: Touring Google's Chrome browser September 05, 2008
- Extensions promised for Chrome September 04, 2008

- Opinion: What's next for Asia's mobile industry?
- Photos: Hands-on with the Samsung YP-Q1 Diamond
- B-movies on Blu-ray: Strippers, flying saucers and sea monsters
- Photos: Cracking open the fourth-gen iPod nano
- Sony Vaio TT: Ultraportable laptop in 'not a car' shocker
- BBC iPlayer: Now showing on portable media players

- Drunk emailing? Mail Goggles to the rescue
- Microsoft CEO Ballmer: Zune for Windows Mobile
- 'Oops I'm Late' app covers for you
- YouTube upgrade: Better uploader, 10x the file size
- Opinion: Why Yahoo Buzz will benefit Digg
- Living the D:Ream: Let's rename the Large Hadron Collider
- The 50 most significant moments of Internet history
- Google Android: Beyond the mobile phone
- Google to show UK religious group's anti-abortion ads
- Norton AntiVirus 2009: First Norton not to suck?
- Seismometer and Movies: Our favourite new iPhone apps
- Best of the forums this week: Why Earth hasn't imploded
- Hands-on with iTunes 8 Genius: Einstein with dementia?
- Apple iTunes 8: Just add Genius
- New Zunes: Buying songs from radio and more


