Part 4. 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.
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.
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:
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:
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:
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:
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:
We can see well that Wide Tent significantly improves the quality in 8x mode - it demonstrates better antialiasing of triangle borders. But what happens with textures?..
As we suspected, textures lose much detail (note: screenshots were taken with Adaptive AA Quality, which antialiases transparent textures; when disabled, the blur gets even more noticeable).
Perhaps, some users will have nothing against this loss of texture sharpness — in this case CFAA is a good algorithm to improve antialiasing of triangle borders. Anyway, it's better to have this option than not to. So we are inclined to take CFAA as an advantage of Radeon HD 2000 card. But this option is of doubtful utility.
We are not going to proceed with CFAA tests, because the information published above is enough to decide whether you want to use it or not.
The Elder Scrolls 4: Oblivion
Let's proceed to a much newer game, which uses FP16 HDR — we have some grounds to believe that there will be more such games in future. So it's especially interesting to evaluate AA quality in FP16 HDR mode. Screenshots.
The list of tested video cards does not include GeForce 7800, which does not support AA for FP16 buffers.
The other video cards rank in a curious order: we don't notice a significant difference in AA quality in modes below 16xQ/24x! Modes 2x, 4x, 8x/6x, 8xQ/8x, 16x/12x are similar in quality.
Radeon HD 2900 XT unexpectedly (after results in Far Cry) shoots forward in the opposition of top 16xQ and 24x modes! When we speak of comparing such modes, the difference can be detected only with a magnifying glass. But the new Radeon card copes a tad better with antialiasing the roof top. It's also interesting to note that performance was acceptable in the 24x mode — the fps level was enough to play the game.
We are again at a loss: is this EDAA behavior in Far Cry caused by a mistake in the driver or will this situation be repeated in future? If Oblivion demonstrates the real quality and performance of EDAA, we must admit that Radeon HD 2000 cards compete well with CSAA mode in GF8. They even offer better quality in 24x mode.
Half-Life 2: Episode One
The last game in this part uses HDR (INT16 is of lower quality, but it's faster and compatible with AA in NV40+/R300+) and has quite a lot of contrasty transparent textures, which can be used to test Transparency AA/Adaptive AA.
Transparency AA Multisampling / Adaptive AA Performance
First of all, let's analyze the low quality algorithms: TAA Multisampling / AAA Performance: screenshots.
The first thing we notice is the difference in fog brightness: GF7800/RX1900 differ from GF8800, but RHD2900 is the worst case. It's a mistake in the application, which Valve has failed to fix for six months already: the first drivers for GF8800 rendered the fog just like in RHD2900; then NVIDIA tried to work this mistake around with drivers (as you can see, it was not very successful); AMD is now in the same trap as NVIDIA was six months before.
If we abstract from the fog, we can repeat the conclusion that TAA MS in GeForce cards is useless for antialiasing MIN-filtered transparent textures (it has some effect only for MAG-filtered textures, that is when textures are zoomed; TAA MS generally works in old games with small textures, and it's useless in new games). We can also note that 12x mode in RHD2900 falls out of the trend to increase quality, as the mode level grows: AAA Performance offers higher quality in MSAA 8x than in EDAA 12x mode.
Transparency AA Supersampling / Adaptive AA Quality
Let's see what happens if we use the quality mode to antialias transparent textures: screenshots.
This mode demonstrates more "regular" performance. All video cards offer comparable quality of transparent antialiasing as the AA level grows.
Conclusions on quality
So, the new series of video cards from AMD noticeably improved the quality demonstrated by its predecessors. Or it didn't make it worse, to say the least.
Although the high quality of anisotropic filtering is insignificantly lower than AF quality of competing modern cards, it is still more than sufficient for 3D games. Minor flaws of AF with 45° surfaces will hardly be noticeable in real games.
On the whole, AF quality is similar to that of competing products, so it's practically impossible to appoint a leader here.
The situation with antialiasing is more complex, because the most interesting mode (Edge Detect) is actually inoperable at the time Radeon HD 2000 cards are announced. That's why we divide our AA quality conclusions into two parts:
As we always try to be optimistic rather than pessimistic, we bet on Option 2 and award Radeon HD 2000 for the best AA quality (EDAA 24x) among all modern video cards for 3D games. But you should keep in mind that the 16xQ mode in GeForce 8 cards is almost just as good, at least in antialiasing triangle borders.
Thus speaking of the quality of anisotropic filtering and antialiasing, we can establish the fact that GeForce 8 and Radeon HD 2000 cards are on a par. And that's wonderful, because you will be pleased no matter what choice you make!
Write a comment below. No registration needed!