""
 

 

By: Pete "Spyre" Grass

Yesterday I attended a briefing with ATi in London on behalf of Driver heaven regarding Direct X 10 and I wanted to share a brief overview of information behind this technology.

DirectX 10 is an evolutionary step over the current DirectX 9 which you see today in Windows XP and earlier operating systems. It will include a plethora of features which game and application developers have been asking for from Microsoft for some time. These additions will not only make developers lives easier, they also speed up the wealth of effects and features that a title can display.

DirectX 10 also places new demands on graphics card developers (primarily Nvidia and ATI) as there are quite a few new features that they have to support. DirectX 10 breaks from tradition by not being backwards compatible with DirectX 9, however there will be a separate version of DirectX 9 in Windows Vista so legacy games should work without too many issues (well that is the theory!)

Vista has a new driver model which means that all the core system component drivers such as sound cards and graphics card drivers are not part of the OS’s system kernel but are run at the same level as the user. OK so what does that mean? Well the short explanation would be that it improves reliability as if the display or sound card drivers crash they don’t Blue screen of death (BSOD) the entire system and it can be restarted without an issue. Running in user mode has another benefit, the display drivers actually have more access to resources so they can run faster than before which will certainly help game frame rates.

Let’s take a quick look at some of the differences between DirectX 9 and DirectX 10 …

DX9:

Objects are parcels of data that are sent from the application to be processed and rendered on the graphics card. These objects can be vertex data, textures, pixel shaders or lighting data.

Under DirectX 9 there is a large overhead per object, and ATI’s famous Ruby for example is made up of around 30 objects, there is also a limit of around 500 objects per scene without slowing things to a crawl which means that worlds are fairly empty of things to interact with. This doesn’t reflect real life which most games are trying to simulate to a large degree.


DX 10:

Much smaller overhead per object which means that more objects can be utilised, making games more interesting and more fun to explore and interact with.

One thing to note:
If the same game was coded to run on both DX9 and DX10 there would be around a 20% performance increase just from the fact the overhead is lower in DX10.


DX9:

Pixel shaders and vertex shaders are separate meaning that if a game scene is making heavy use of pixel effects not all of the graphics card is being utilised as the vertex shaders are sat around doing nothing.

This screenshot shows that for a particular scene of a game the usage of pixel and vertex shaders varies pretty wildly meaning that most of the time either one or the other is under utilised.


DX10:

DirectX 10 adds an extra type of shader into the mix, the geometry shader. This type of shader has the ability to create extra triangles if requested to do so. One of the many benefits of this type of shader would be to create displacement mapping (a way to make textures and scenes look more detailed by adding the illusion of height to an otherwise flat texture).

ATI’s next generation graphics card currently codenamed R600, will have unified shaders meaning that if the game is wanting to make use of pixel shaders all of the graphics cards onboard shaders can be used for that purpose if required meaning that there’s much better usage of the chip at any one time which will speed things up.

To make sure that the requests of the game / app are met between pixel , vertex and geometry shaders there are a number of arbiter units on the R600 allowing the chip to load balance what its doing at any one time to maximize the workload.

ATI have already learned a great deal about unified shader architecture as those techniques have already been utilised in the Microsoft Xbox360. Meaning they can improve upon decisions they made previously.

Nvidia on the other hand think that for their DX10 graphics card they are better off sticking to the tried and true fixed shader pipelines meaning that they have to have dedicated pixel, vertex and geometry shaders. The downsides of this is that there is even more chance that the card will have either 1 or more of the units h around idle while its waiting for another unit to finish what it’s doing while rendering the graphics.

Microsoft say that you can go for either approach and still have a DX10 compliant card, although they prefer the unified approach. Nvidia will be going to a unified approach further down the line.

DX9:

Caps bits, maybe you haven’t heard of these too much but they are the way that a DX9 and earlier application / game found out what the graphics card can and can’t do so that they don’t ask it to enable an effect or feature that’s not present. This is to stop the application potentially crashing or having odd behavior.

DX10:

No more caps bits, this means that every vendors graphics card MUST support all the DirectX 10 features by default. This should make developers lives easier as there is no more uncertainty.

There is nothing to stop graphics card makers adding extra features above and beyond DirectX 10 however, but they won’t be accessible until future versions of DirectX such as 10a or 10.1 etc.
In fact the R600 will have some features onboard that won’t be activated under DX10.

Other things worth mentioning:

DirectX 10 also allows new abilities for the developer such as morphing so expect to see monsters changing shape. Another new feature is the ability to get the graphics card to handle physics instead of the CPU, which can significantly allow more objects to be interacted with and making games more realistic. ATI showed off a demo a while ago which showed off an ocean where the wave physics were entirely done on the GPU rather than the CPU so expect more games to use this type of feature in the future.


Ill see you on the forums ! -- Pete "Spyre" Grass

 

Navigation:
 
Visit DriverHeaven

Copyright ©2002-2006 DriverHeaven.net, All rights reserved.

TechHeaven design based on BlackTeal adapted by craig5320 & Zardon. Additional artwork/DH logo by Zardon. Review coding Zardon.
DH logo & Artwork may NOT be used without express permission of the Administration Team, protected under Copyright Law.

DriverHeaven Articles
Style By: vBSkinworks