DirectX 10, What is all the Fuss?

DirectX 10, What is all the Fuss?

Warning:Always look at the date when you read a hardware article. Some of the content in this article is most likely out of date, as it was written on February 28, 2007. Check out our more recent articles.

DirectX is something the average gamer doesn't give much thought. Often they don't even see the word until one of their games complains it is out of date. Even then, the necessary version is usually included, so all they have to do is do a quick, painless install and they're on their way. DirectX 10 is a bigger deal. It is a more exciting update, and is more of a concern if you're buying a new system. That means it is time to do some reading! The purpose of this article is to give you an overview of what to expect from DirectX 10, and what you need to run it.

Those screenshots above are straight from the Vista market efforts. Take them with a grain of salt, but they at least give you an idea of what kinds of differences you'll see. Exactly how DirectX 10 is better can be a very technical topic, but it can be boiled down to a few simple concepts that can get across the general idea:

One major annoyance to game developers of DirectX 9 is that there are not strict standards on how a video card implements the DirectX 9 features. This means that there is a lot of variation in hardware implementation, and it means that the game developers have to work extra hard to make their game work for all that hardware. They have to write specific code for each hardware variation. This is why PC games can be fine with one video card, and unstable with another -- there can be a bug within the special code they wrote for just one set of hardware. Think about console games (X-Box, PS2, etc), and how those games have less problems with stability than PC games. It is because with a console game, the game developers know what they are working with, and they know there is no variation in hardware.

By requiring tighter standards, game developers for PC games gain this same benefit. They no longer have to go through the hoops of writing specific code for all the hardware variations. By only having to write one set of code, games can be more easily developed, and more thoroughly tested.

In addition to loosely defined feature implementation, DirectX 9 also does not require that all features are even implemented at all. This means that game developers are working to program great looking features into their games, knowing that only the minority of people able to afford the most high end hardware will ever see it! When was the last time you ran a game on full video settings? The majority of gamers do not have the hardware to do it. It must be frustrating for game developers to work hard on features that most of us never see!

DirectX 10 addresses this in the same way, with the same tighter standards. Unfortunately, these standards mean that it will be harder for manufacturers to make DirectX 10 cards. It will also mean there will be less models of cards on the market, and they may cost more. This will also mean that it will be a while until we see DX10 support in the low-end. This technology is for the cutting edge only - business office terminals need not apply! While this isn't something we can all be thrilled about, we can all look forward to the results of what a big help this is to game developers.

One of the big improvements in the code of DirectX 10 is the new way it looks at a video card. The move is to really consider a video card to be a processor. We've seen this shift start back with DirectX 8, which the idea of programmable shaders was introduced. Before that, specific effects had to be hard wired into the video cards. With programmable shaders, game developers could introduce their own effects. However, in DirectX 9 you still have dedicated processing units devoted to vertex and pixel drawing (making the shapes of the picture) and to the shading (making the picture more realistic). It is an increasing problem that a particular scene might need lots of vertex calculations, but not much shading, or vice versa. In those instances, the unused processors simply sit idle! DirectX 10 remedies this by simply having one operation -- a geometry shader. This performs both actions, which means that not only can it use all the processing units on the video card for whatever it needs, but it also means that the game developers can get the image they want with fewer requests...which means less overhead.

This reduction in overhead is a big deal. Any requests to the DirectX API translates into CPU overhead, so DirectX 10 takes aim at reducing the number of requests required. With DirectX 9, the overhead is somewhere around 40%. This means that a little less than half of your hardware is being used up just by the DirectX infrastructure! DirectX 10 is able to reduce this down to 20%, which is an impressive improvement. It means that games running DirectX 10 will only need half the CPU time for DirectX related calculations, freeing up the CPU to focus on other aspects of the game like AI.

Among other things, another feature introduced in DirectX 10 is called "Instancing." This is a feature that allows the same object to be rendered multiple times without all the overhead. Without it, game developers are limited to roughly 500 objects on the screen before the overhead gets ridiculous. With DirectX 10, you'll see a new ability to have virtually limitless numbers of objects -- the only limit is the speed of the hardware. This means bigger armies, more trees, even individually rendered blades of grass if the game developer chooses! In whatever way it ends up being used, Instancing will be a big part in bringing game detail to the next level.

All high end games today run on DirectX 9, which has been the most recent revision for the last four years (has it really been that long?!). When is DirectX 10 being released? Good news -- DirectX 10 is here NOW! It's one of the new features included with Windows Vista, working ONLY ON Vista. Windows XP will not have DirectX 10. Read it again, it's important: the next generation of games WILL NOT be played on Windows XP using DirectX 9 hardware and software. While Vista includes a separate DirectX 9 software layer, version 10 is where the graphics industry is headed, which means Vista is where the gaming is headed.

Which cards are available to you at this very moment? Any Nvidia 8000 series cards (8800GTX, 8800GTS), and THAT'S IT! This has been a real sore spot for ATI, but look for their R600 GPU for release in Q2 of this year. The spring GPU tech refresh for this year is going to be a key time in the graphics world to see whether ATI can steal back some spotlight, and DX10 is going to be a big part of the fuss.

The multi-billion dollar gaming industry is a large driving force for hardware improvements, and DirectX 10 is a huge improvement to gaming software developers. We have to wait for those games to come out, but there's something for everyone in that list and every gamer out there has got to be drooling by now. The thing to remember though, is this: You have to have all the pieces of the puzzle to play those games the way the developers intended you to!

For information, including more screenshot comparisons between DirectX 9 and 10, you can also check out the DirectX 10 Whitepaper on the Windows Vista Team Blog.