AMD/ATI DirectX 10 Series:
RADEON HD 2900 XT (R600)
Part 4. AF & AA Quality
Contents
- Theory and Architecture
- Graphics card features
- Testbed configuration, list of benchmarks
- Synthetic benchmarks
- Game benchmarks and conclusions
- AF & AA Quality
NVIDIA GeForce 8 video cards, which appeared six months ago, brought not only the anticipated performance gain and support for new API DirectX 10, but also a number of unexpected positive changes in anisotropic filtering and antialiasing. Having marked the quality of new filtering and antialiasing algorithms in GF8800 cards very high, we've been looking forward to the response from AMD — it was natural to expect surprises in the new GPUs from the formerly Canadian company.
And now the R6x0 series has been launched - a tad later than expected. But can this delay be justified? As in case with GF8, modifications were made to anisotropic filtering as well as to antialiasing - the former changes are a tad less important than the latter.
Anisotropic filtering
Let's start with anisotropic filtering. Especially as its changes are insignificant. In fact, engineers just removed the low-quality default AF mode from R6x0 (it had been used since the legendary Radeon 9700) and left only High Quality mode that had first appeared in R5x0 GPUs.
And of course, the Catalyst driver preserved very good software optimizations of Catalyst AI (they can be disabled!) They reduce the area of trilinear filtering in some textures.
Judging from the above said, we can assume that anisotropic filtering of maximum quality in Radeon HD 2000 cards will be a tad worse than anisotropic filtering available in GeForce 8 cards: this conclusion was made after we compared HQ modes of anisotropic filtering in Radeon X1900 with anisotropic filtering in GeForce 8800. And HQ AF mode in Radeon X1900 is no different from the only AF mode in Radeon HD 2000.
D3D AF-Tester
Let's use D3D AF-Tester to determine whether anisotropic filtering in Radeon HD 2000 is of the same quality as HQ AF in Radeon X1000: screenshots.
There is some difference between HQ AF in Radeon X1900 and AF in Radeon HD 2000. But it's insignificant even in this synthetic test, and you cannot notice it in real games
At the same time, our preliminary assumption is confirmed: in 8x modes and higher, the quality of anisotropic filtering in Radeon HD 2000 is inferior to the AF quality in GeForce 8 (at 45°). But this difference is not big. Moreover, it's almost impossible to notice it in real games — you cannot always see the difference between the old filtering algorithm and the new HQ mode; to say nothing of the negligible difference in the quality of filtering inclined surfaces between GF8 and RHD2000.
Before we proceed, let's mention another important issue: since the times of GeForce 6 / Radeon X, the default filtering mode (with enabled optimizations) in Radeon cards offers higher quality (owing to higher quality of these optimizations). Thus, Radeon HD 2000 cards outscore GeForce 8 cards in AF quality in default mode and offer a tad worse quality in HQ mode.
Let's see how noticeable the difference in anisotropy algorithms will be in a real game.
S.T.A.L.K.E.R.: Shadow of Chernobyl
Two-month old S.T.A.L.K.E.R. possesses quite a lot of large surfaces with monotonous textures, which are rarely used these days. They are the best at revealing any flaws in anisotropic filtering: screenshots.
In the default 16x mode (in our opinion, it makes no sense to test AF modes of worse quality — a negligible performance drop in HQ mode makes it pointless to use modes below 16x) Radeon HD 2900 XT is slightly outscored by GeForce 8800 GTS in texture sharpness. It's difficult to point out the reason, but we suspect that it's most likely peculiarities of game code and optimizations rather than the difference in AF algorithms. Remember that excessively sharp textures may lead to noise in motion!
Here is the rating of AF quality in the default mode:
- GeForce 8800, Radeon HD 2900
- GeForce 7800
- Radeon X1900
The previous generation of Radeon cards suffers from the flower-like anisotropic filtering the most. However, we already mentioned that the flower-like anisotropy in GeForce 6/7 copes better with filtering "inconvenient" inclined surfaces.
HQ anisotropic filtering algorithms of GeForce 8800, Radeon X1900 and Radeon HD 2900 demonstrate similar quality levels. GeForce 7800 offers noticeably lower quality, as it does not possess the normal (not flower-like) AF algorithm.
Pay attention to the roof of the house in the left part of the scene (you cannot see it in the fragment): strange as it may seem, the best way to cope with the moire pattern on the roof texture is demonstrated by GeForce 7800 in HQ mode. The roof is most likely at one of the "inconvenient" angles for the AF algorithm of the GF7800. So it's just blurred by the insufficient AF level in the HQ mode. It's done in order to remove the nasty moire.
Here are our preliminary conclusions on the quality of anisotropic filtering in Radeon HD 2000 video cards:
- Radeon HD 2000 and GeForce 8 offer similar AF quality in the default mode (Radeon HD features better filtering optimizations; GeForce 8 has a small advantage - filtering surfaces at 45°)
- In maximum quality mode (i.e. optimizations are disabled) AF of Radeon HD 2000 is slightly inferior to AF of GeForce 8. But the difference is so insignificant, that it will be really difficult to notice in real applications.
Antialiasing
Antialiasing algorithms in Radeon HD 2000 suffered much more significant changes versus Radeon X1000 than AF algorithms.
These changes have been already mentioned in the first part of this article. Now we are going to analyze them in more detail.
Innovations in AA algorithms of Radeon HD 2000
So, all perturbations in AA algorithms can be divided into three large groups:
- Changes in MSAA algorithm
- Added CFAA
- Added Edge Detect
Let's review them one by one.
1. Changes in MSAA algorithm
Everything is simple here: MSAA 6x (familiar to all owners of Radeon cards) is replaced with MSAA 8x.
Judging by the fact that the driver now has no 6x mode, Radeon HD 2000 video cards, like GeForce 8, have learnt to do four Z-tests per cycle, that is MSAA 4x is now performed for each screen pixel per GPU cycle, two cycles are required for MSAA 8x.
Considering that Radeon HD 2900 is the first affordable video card equipped with a 512-bit memory bus, this solution looks logical.
Let's have a look at the arrangement of sub-samples in MSAA 8x using DX9 FSAAViewer: changes.
The arrangement of sub-samples in the new MSAA 8x mode in Radeon HD 2000 looks neither like 6x mode in older Radeon cards, nor like 8x mode in GeForce 8 cards. But we can hardly draw any conclusions about quality of the new mode.
We should also note that Radeon HD 2000 preserved the opportunity to program MSAA samples via the driver (this feature has been available in Radeon cards since R300). So the sample pattern of the 8x mode may change in new Catalyst versions.
Radeon HD 2000 cards have an interesting feature - they allow to program sample patterns not only from the driver, but also from the application executed by the video card: this feature will be added in the future update of API DirectX 10. In other words, what concerns MSAA, Radeon HD 2000 cards are compatible not only with DX10, but also with the future version of this API.
2. Added CFAA
What is CFAA (Custom Filter AA)? Have a look the the picture (we already published it in the first part of the article):
In fact, CFAA is a software control for the algorithm of blending color values of MSAA subpixels into a resulting color of a screen pixel. Radeon HD 2000 allows not only to specify the range of subpixels to compute the color of a screen pixel, but also to assign various weights to subpixels. We'll explain what it means a tad later.
Interestingly, software control of subpixel blending algorithms is also mentioned in the list of improvements of the new API DirectX. Perhaps, this algorithm can be controlled in Radeon HD 2000 not only by the drivers, but also by applications — but we'll have to wait for the new version of API DirectX, known as DX 10.1.
But the new version of DX will not be released soon. So AMD offers to use CFAA already today by forcing one of three available downsampling modes in the control panel of the driver:
- Box filter
- Narrow tent
- Wide tent
You can specify a subpixel filter for all available MSAA modes — 2x, 4x and 8x (so we get 3×3=9 AA options).
Box filter — a standard downsampling method, previously used in all MSAA modes of Radeon and GeForce cards (read about GeForce below). This filter uses only subpixels of a given screen pixel to calculate its resulting color. No weights are used. All subpixels are of the same value, when a pixel color is calculated.
Narrow tent and Wide tent are new downsampling modes in Radeon HD 2000. These modes sample not only subpixels of a given pixel, but also subpixels of neighboring pixels in order to calculate the color of a screen pixel. They actually differ only in coverage area outside a given pixel and probably in weights. We can assume that subpixels of a target pixel possess higher weights than subpixels sampled outside its borders.
It's important to understand that CFAA is not a new type of antialiasing. It's just an optimization of one of MSAA stages — calculating the color of a screen pixel from colors of MSAA subpixels. CFAA does not add new subpixels, it does not increase the amount of information for MSAA, it just changes the formula.
Including outside subpixels into the formula to calculate color of a given pixel blurs the image. This blur certainly helps smooth triangle borders, but it also reduces detail of textures and shader effects.
It should be noted that AMD is not the first company to add such AA algorithms to its products: NVIDIA presented its GeForce 3 and Quincunx AA in spring, 2001. Quincunx was similar to CFAA: it captured subpixels outside a target pixel to calculate its color. Moreover, NVIDIA drivers included the hidden 4x9tap mode for a long time. It did the same thing and differed from Quincunx only in the number of covered subpixels.
OK, CFAA is much more advanced than algorithms of old NVIDIA GPUs. But the basic principle is the same, thus the same concerns the basic drawback — blurred image, lower level of details in textures and effects.
Let's have a look at this blur in DX9 FSAAViewer: