bit-tech.net

ATI Radeon HD 5870 Architecture Analysis

DirectX 11 Summary

It's bizarre to think that we covered DirectX 11 in some depth over a year ago, but that was when Microsoft first started talking about the API in public. It's fair to say that AMD is in a great position when it comes to DirectX 11, much like Nvidia's position with DirectX 10. Nvidia had hardware in games studios way before ATI, meaning that games developed on (and therefore optimised for) G80; it also had cards on sale before ATI, so anyone wanting a new next-gen card with Vista had only one option.

G80 launched in November 2006, three months before Windows Vista hit the streets, and Windows 7 ships on 22 October, by which time the Radeon HD 5870 will have been on sale for a month. We’re not sure why Microsoft chose a Thursday to launch Windows 7, but 22 October 2009 is the date when DirectX 11 will be available to consumers running either Windows 7 or Windows Vista.

That's not necessarily the most important thing for AMD though; instead, it's the fact that it has put DX11 hardware in developers' hands long before its arch-rival Nvidia, which means that the first influx of DirectX 11 games will be developed on Radeon hardware. AMD (well, ATI) hasn't been in this position since the Radeon 9700, which launched long before DX9.0 was released.

ATI Radeon HD 5870 Architecture Analysis DirectX 11 Summary ATI Radeon HD 5870 Architecture Analysis DirectX 11 Summary

Being first is hugely important, as developers will spend time working out Cypress's quirks and program to take advantage of its strengths until such a time when Nvidia has hardware available for developers to use and test on. We don't know when that is likely to be at the moment, but several sources have said that GT300 will be on sale this year - even if only in limited volumes. We expect a significant number of the first GT300 GPUs to go games studios for dev work, which could exacerbate this.

DX11 is a superset of DX10 (and DX10.1), meaning that some of the new features will be available to DX10 GPUs as well. Of course, using a DX10 GPU is unlikely to be as effective as using a DX11 GPU, and in most cases the older design will probably be too slow to take full advantage of all the enhancements of DX11, but the important thing is that developers can write one code path for both DX10 and DX11 hardware, as the DX10 hardware will ignore things that aren't supported.

Tessellation is one major addition of DX11 and it's something that AMD has been working on ever since the Xbox 360 Xenos GPU - it's fair to say that it's familiar territory for AMD, then. The tessellator in DX11 is more advanced than what has come before, but it's still not programmable. Instead, it relies on the Hull and Domain shaders to feed it the right information and then to output into vertices before it moves down the pipeline. These shader types aren't supported on older hardware, so the tessellation units on R600, RV670 and RV770 will not be exposed in DirectX 11.

The other major addition is DirectCompute (previously known as the Compute Shader), which allows developers to use the GPU for more general-purpose parallel computing tasks. This can have a massive impact on performance, as the GPU only works in triangles when it's running in its graphics mode. However, not everything is built using triangles, so being able to use the GPU as a hugely parallel processor with effectively no limits on how the data is arranged can yield a significant performance improvement.

ATI Radeon HD 5870 Architecture Analysis DirectX 11 Summary ATI Radeon HD 5870 Architecture Analysis DirectX 11 Summary

In terms of pure graphics workloads, one area that has been singled out by Microsoft, AMD, Nvidia and a number of game developers to benefit hugely from DirectCompute is post processing. The speed ups are in the realm of orders of magnitude, which could lead to significantly improved fidelity in games moving forwards.

Another effect that AMD is pushing quite heavily is Order Independent Transparency, which uses DirectCompute to sort transparent textures in a single clock cycle. This can have a huge impact on image quality, as objects with multiple transparent layers have never been truly transparent until now, because developers have relied on simple alpha blending.

It simply cost too much to re-order transparent surfaces to draw multiple and/or overlapping transparent surfaces previously, because the CPU had to get involved to ensure the surfaces were in the correct order. As a result, there was often noticeable clipping around the edges of surfaces because developers steered away from involving the CPU too much and thus avoid slowdowns.

There's quite a bit more to DX 11 than we've let on here, so we'd definitely recommend reading our in-depth DirectX 11 feature to get a better understanding of what's changed. However, these are the headline additions and benefits.