Architecture Updates

The Decision Backdrop

As we alluded to previously, the primary architecture updates for R580 (X1900) over R520 (X1800) is indeed with the increase in pixel shader ALU's.

There's been two primary trends in graphics over recent years, with both the pixel shader (programmable math) capabilities and application utilisation of said shaders increasing, while memory bandwidth hasn't increased as much as the potential capabilities of the graphics cards. Pixel Shader adoption started with DirectX8 capable boards, but began to hit their stride in terms of adoption with DirectX9 class hardware. With such hardware the shader capabilities became more flexible, hence longer and more capable shaders could be written, and the hardware also became increasingly powerful in terms of programmable math performance. With the proliferation of shader capable hardware, whereby all hardware sold by the IHV's at the moment are at least Shader 2.0 capable, inclusive of Intel's integrated graphics platforms, and the shader capabilities of the major next generation consoles, nearly all 3D games produced will have some reliance on shaders.

As the hardware became more math capable, more could be achieved within the hardware than may have previously been achieved by texturing - at a very basic level programmable dynamic lighting models now replace the static "base texture + light-map texture" lighting, and more complicated elements, such as vector normalisation, can also be achieved achieved via math in the shader ALU's. To this end more and more titles are increasing the amount of math instructions used within their games, while the number of texture instructions hasn't increased to anywhere near the same degree - some current titles have average math to texture instruction ratios of 5:1 and Splinter Cell: Chaos Theory is said to be measured at 7:1.

Even though floating point ALU's can be fairly costly in terms of transistors (although, proportionally not so much now with smaller silicon processes), they are relatively cheap in terms of bandwidth utilisation, unlike textures which are much more bandwidth consuming. Given that bandwidth isn't growing at the same rate as the capabilities of the graphics cards, the more operations that can be achieved via math, as opposed to texturing, the more the bandwidth can be saved for other operations. Textures also require plenty of memory and the higher the resolution/detail and quantity also increase the memory footprint which can be expensive. Rendering performance can also be harmed when there is a high volume of texture storage as the local memory of the graphics board may not be sufficient to store it all hence some it addressed from system RAM, which will have far lower bandwidths, and higher latencies, than the local memory on high end graphics boards. Shaders, on the other hand, hardly require any memory at all.

ATI also suggests only a minority of rendered pixels have high levels of filtering on them, most are bilinear filtered, point sampled or have no texture lookup at all (although, user control panels can override this, which often leads to a more inefficient texturing load than if the developer were to selectively apply the filtering as required).

It's with the above factors in mind that ATI have designed R580 such as they have.