Stuart Andrews takes a journey through a DirectX 10 3D graphics pipeline, and explains how GPU architecture has changed since the DirectX 9 days.
The arrival of DirectX 10 heralds a new era for PC graphics. Crysis is only the beginning; within the next few years, we'll see games on the PC that will put even the most dazzling PS3 and Xbox 360 blockbusters in the shade. However, this sort of power doesn't come without sweeping change, and the people at the sharp end aren't gamers or programmers, but the engineers at ATi and Nvidia. DirectX 10 requires a GPU with a radically different architecture.
These guys are already accustomed to change. The original Radeon R100 GPU had approximately 30 million transistors, while the R580 used in the X1900 series has 384 million. This rise was necessary to support growing numbers of pixel and vertex processors, and the complex scheduling hardware needed to manage their operations. However, the change from the R580 to the R600 GPU in ATi's new Radeon HD 2900XT goes beyond mere numbers. The rise to 700 million transistors isn't just a case of adding more brawn, but also about taking that brawn and using it in more efficient and flexible ways.
To understand this, you need to change the way that you think about the 3D graphics pipeline. Traditionally, GPUs worked like a sausage machine or a factory production line. At one end, you put in geometry, textures and shader code. The GPU then organises these raw materials into various streams and caches, and sends the geometry through the vertex shaders, which arrange the geometry into groups of triangles in 3D space, which may be rotated, scaled, moved, blended and lit as necessary.
The GPU then takes all this processed vertex data and reorganises it into a 2D view of the 3D scene, performing any required clipping or culling. This view is then transformed into pixel 'fragments', which are processed by the pixel shaders, which deal with the complex effects of surface texture, opacity, colour and lighting. The outputs from this processing are then combined, along with depth and stencil buffer information, before being sent to the frame buffer for final output. Easy.
However, DirectX 10 not only alters beyond recognition the journey from vertices to pixels, but also alters the facilities used in that process. This isn't a simple production line any more; it's a complex manufacturing facility. The workforce is different, and so is the management structure.
About DirectX 10
If you want more details about how the DirectX 10 API works, refer to our feature The DirectX Factor, but if you just need reminding, three new features have a direct bearing on what follows. Firstly, DirectX 10 adds a third type of shader - the geometry shader - that can process whole primitives or multiple vertices, as opposed to only single vertices like a vertex shader. The benefit is that you can construct new vertex data from existing vertex data by taking triangles, line lists, point lists or strips, and extrapolating them, according to instruction, into new triangle or line strips, or multiple points.
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
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
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).
I REALLY don't want to buy vista just to play a DX10 game. Anyone know anyway around it?
Make a Comment
Fastest, cheapest 3G mobile broadband dongles from 3, Vodafone, T-Mobile and Orange
from just £10/month