Welcome Guest LOGIN | REGISTER
Monday 23rd July 2007

Dissecting DirectX 10

Posted at: Monday 23rd July 2007 by Stuart Andrews

Stuart Andrews takes a journey through a DirectX 10 3D graphics pipeline, and explains how GPU architecture has changed since the DirectX 9 days.

Once all the operations on a particular set of vertices are complete, the setup engine goes to work, calculating which vertices belong to which triangles, and how those triangles need to be drawn from the given perspective. It will also work out which triangles need to be rasterized, and which need to be discarded.

This part of the process is similar to the method used in a DirectX 9 GPU, but DirectX 10 GPUs are more efficient, particularly when it comes to culling or clipping unwanted triangles. For instance, in any given scene, half of the polygons that could be drawn will be back-facing (they don't face the camera, so they wouldn't be seen if they were rendered). Rasterizing these isn't only a waste of processing power and, therefore, a problem for performance; leaving them in the pipeline can also cause unpleasant image artefacts later on. The setup engine in the R600 can cull an impressive 1 million triangles with every clock cycle.

Texturing

The output from the setup engine is then rasterized. The setup engine transforms the primitives into pixel 'fragments', which have to be coloured and shaded. In the linear DirectX 9 process, as used in the R580, this meant simply cacheing the fragment data and sending instructions to the dispatch processor that controls the 48 pixel units. In the R600, however, it means cacheing the data so that it's ready for the dispatch processor to use it in the pixel queue. In the G80, the instructions go to the global scheduler, and then to the local scheduler belonging to the ALU cluster.

While unified shaders are a key part of DirectX 10 architecture, they aren't the only important part when it comes to texturing and pixel shading operations - we also have to consider the texture units. Nearly all 3D graphic operations involve sampling textures, held in the main system or video RAM, and then cached in one or more texture caches in the GPU. Moving sample data from the cached textures and into the pixel shader requiring it is the texture unit's first task. Filtering these textures - ensuring that they appear at the correct angle and blur level for the distance and perspective - is its second task. In both respects, if you compare the R600 with the old R580, two things stand out.

Firstly, while old-school DirectX 9 GPUs such as the R580 had already taken the step of decoupling texture units from specific pixel units, sharing them three to one across the 48 processors, the R600 takes this process one stage further. Texture units are now, in Richard Huddy's words, 'servants of the shader cores in a much more abstract sense'. Any shader core, whether it's performing pixel, vertex or geometry work, can request the resources of a texture unit, and the dispatch processor handles the transaction. Interestingly, the texture units in Nvidia's G80 are tied to specific SPU clusters, although they can be addressed by any form of shader program running on that cluster.

More images for this article:

Submit to:  
Hands On Guides for this article
Comments

Its Stupid to make every body in the world upgrade to vista eventually and even more anoying is for us gamers and PC modders i think its all just a waste of time

Comment by Maddwilz at 7:56pm 10th August 2007



WAGHHHHHH VISTA NO WORKEEEE

theres talk about microsoft doing a turn around and offerin dx10 as an update coz nae body wants 2 spend a fortune on upgrade just like me lol im going back 2 my amiga 1200 and wipeout 2097 yassssssssssss

Comment by GUMBANATOR at 7:23pm 5th August 2007



A Vista Work Around

If you want all the Dx10 benefits in Company of Heroes without getting a Vista machine here is what you do. Take out half your RAM, underclock your CPU to about 75% of the speed and then replace your graphics card with an X1300 or similar. That should nicely replicate the prolapsed frame rate and compromised graphics settings enjoyed by Dx10 Company of Heroes players (unless they have beta drivers).

Comment by Grotmonkey at 9:46pm 31st July 2007



Do I really need Vista for dx10?

I REALLY don't want to buy vista just to play a DX10 game. Anyone know anyway around it?

Comment by clipkilla at 6:04pm 30th July 2007



Make a Comment

Mobile Broadband

Compare prices

Fastest, cheapest 3G mobile broadband dongles from 3, Vodafone, T-Mobile and Orange
from just £10/month

Button link to Mobile Broadbandgenie.co.uk
Powered by
Broadband Genie