High IQ: AMD Fixes Texture Filtering and Adds Morphological AA

“There’s nowhere left to go for quality beyond angle-independent filtering at the moment.”

With the launch of the 5800 series last year, I had high praise for AMD’s anisotropic filtering. AMD brought truly angle-independent filtering to gaming (and are still the only game in town), putting an end to angle-dependent deficiencies and especially AMD’s poor AF on the 4800 series. At both the 5800 series launch and the GTX 480 launch, I’ve said that I’ve been unable to find a meaningful difference or deficiency in AMD’s filtering quality, and NVIDIA was only deficienct by being not quite angle-independent. I have held – and continued to hold until last week – the opinion that there’s no practical difference between the two.

It turns out I was wrong. Whoops.

The same week as when I went down to Los Angeles for AMD’s 6800 series press event, a reader sent me a link to a couple of forum topics discussing AF quality. While I still think most of the differences are superficial, there was one shot comparing AMD and NVIDIA that caught my attention: Trackmania.

Poor high frequency filtering

The shot clearly shows a transition between mipmaps on the road, something filtering is supposed to resolve. In this case it’s not a superficial difference; it’s very noticeable and very annoying.

AMD appears to agree with everyone else. As it turns out their texture mapping units on the 5000 series really do have an issue with texture filtering, specifically when it comes to “noisy” textures with complex regular patterns. AMD’s texture filtering algorithm was stumbling here and not properly blending the transitions between the mipmaps of these textures, resulting in the kind of visible transitions that we saw in the above Trackmania screenshot.

Radeon HD 5870 Radeon HD 6870 GeForce GTX 480

So for the 6800 series, AMD has refined their texture filtering algorithm to better handle this case. Highly regular textures are now filtered properly so that there’s no longer a visible transition between them. As was the case when AMD added angle-independent filtering we can’t test the performance impact of this since we don’t have the ability to enable/disable this new filtering algorithm, but it should be free or close to it. In any case it doesn’t compromise AMD’s existing filtering features, and goes hand-in-hand with their existing angle-independent filtering.

At this point we’re still working on recreating the Trackmania scenario for a proper comparison (which we’ll add to this article when it’s done), but so far it looks good – we aren’t seeing the clear texture transitions that we do on the 5800 series. In an attempt to not make another foolish claim I’m not going to call it perfect, but from our testing we can’t find any clear game examples of where the 6870’s texture filtering is deficient compared to NVIDIA’s – they seem to be equals once again. And even the 5870 with its regular texture problem still does well in everything we’ve tested except Trackmania. As a result I don’t believe this change will be the deciding factor for most people besides the hardcore Trackmania players, but it’s always great to see progress on the texture filtering front.

Moving on from filtering, there’s the matter of anti-aliasing. AMD’s AA advantage from the launch of the 5800 series has evaporated over the last year with the introduction of the GeForce 400 series. With the GTX 480’s first major driver update we saw NVIDIA enable their transparency supersampling mode for DX10 games, on top of their existing ability to use CSAA coverage samples for Alpha To Coverage sampling. The result was that under DX10 NVIDIA has a clear advantage in heavily aliased games such as Crysis and Bad Company 2, where TrSS could smooth out many of the jaggies for a moderate but reasonable performance hit.

For the 6800 series AMD is once again working on their AA quality. While not necessarily a response to NVIDIA’s DX10/DX11 TrSS/SSAA abilities, AMD is introducing a new AA mode, Morphological Anti-Aliasing (MLAA), which should make them competitive with NVIDIA on DX10/DX11 games.

In a nutshell, MLAA is a post-process anti-aliasing filter. Traditional AA modes operate on an image before it’s done rendering and all of the rendering data is thrown away; MSAA for example works on polygon edges, and even TrSS needs to know where alpha covered textures are. MLAA on the other hand is applied to the final image after rendering, with no background knowledge of how it’s rendered. Specifically MLAA is looking for certain types of high-contrast boundaries, and when it finds them it treats them as if they were an aliasing artifact and blends the surrounding pixels to reduce the contrast and remove the aliasing.

MLAA is not a new AA method, but it is the first time we’re seeing it on a PC video card. It’s already in use on video game consoles, where it’s a cheap way to implement AA without requiring the kind of memory bandwidth MSAA requires. In fact it’s an all-around cheap way to perform AA, as it doesn’t require too much computational time either.

For the 6800 series, AMD is implementing MLAA as the ultimate solution to anti-aliasing. Because it’s a post-processing filter, it is API-agonistic, and will work with everything. Deferred rendering? Check. Alpha textures? Done. Screwball games like Bad Company 2 that alias everywhere? Can do! And it should be fast too; AMD says it’s no worse than tier Edge Detect AA mode.

So what’s the catch? The catch is that it’s a post-processing filter; it’s not genuine anti-aliasing as we know it because it’s not operating on the scene as its being rendered. Where traditional AA uses the rendering data to determine exactly what, where, and how to anti-alias things, MLAA is effectively a best-guess at anti-aliasing the final image. Based on what we’ve seen so far we expect that it’s going to try to anti-alias things from time to time that don’t need it, and that the resulting edges won’t be quite as well blended as with MSAA/SSAA. SSAA is still going to offer the best image quality (and this is something AMD has available under DX9), while MSAA + transparency/adaptive anti-aliasing will be the next best method.

Unfortunately AMD only delivered the drivers that enable MLAA yesterday, so we haven’t had a chance to go over the quality of MLAA in-depth. As it’s a post-processing filter we can actually see exactly how it affects images (AMD provides a handy tool to do this)  so we’ll update this article shortly with our findings.

Finally, for those of you curious how this is being handled internally, this is actually being done by AMD’s drivers through a DirectCompute shader. Furthermore they’re taking heavy advantage of the Local Data Store of their SIMD design to keep adjacent pixels in memory to speed it up, with this being the biggest reason why it has such a low amount of overhead. Since it’s a Compute Shader, this also means that it should be capable of being back-ported to the 5000 series, although AMD has not committed to this yet. There doesn’t appear to be a technical reason why this isn’t possible, so ultimately it’s up to AMD and if they want to use it to drive 6800 series sales over 5000 series sales.

Seeing the Present: HDMI 1.4a, UVD3, and Display Correction What’s In a Name?
Comments Locked

197 Comments

View All Comments

  • Finally - Friday, October 22, 2010 - link

    Did you have a look at the games market lately? Noticed all those shabby console ports? There is no progress because the graphics power of an XBOX or PS3 is exactly the same as it has been when they were introduced.

    Then again, who wants to play dumbed-down console games, made by illiterates for illiterates running on antique hardware which severely limits innovation in the graphics sector?
  • jimhsu - Friday, October 22, 2010 - link

    "I know the 4890 is a pig (loud, noisy, power hungry) compared to the cards here"

    And hence your point. Essentially, major COMPUTER manufacturers (not just video card makers) simply are less concerned about maximum performance anymore -- for 95% of the population, what we have now is "good enough", and for the remaining 5%, getting more of the cheap stuff is also "good enough" (HPC builders, SLI/CrossFire, etc). Instead, people look at things like "is this quiet" (heat production, fans) or "what does this mean for my bottom line" (power consumption, replacability). The age of the monolithic "fast chip" is over.
  • Jamahl - Friday, October 22, 2010 - link

    AMD naming the cards the 6800 series or Anandtech changing their policy of not reviewing overclocked cards.
  • spigzone - Saturday, October 23, 2010 - link

    AMD renaming their cards = more confusing
    Anandtech 'changing' their policy = more inexplicable.
  • softdrinkviking - Friday, October 22, 2010 - link

    i join the throngs of disgruntled consumers that object to the new naming convention of the 6800 series.
    it's silly and stupid, and you should be ashamed of your collective AMD selves.
  • spigzone - Saturday, October 23, 2010 - link

    I didn't like it either ... until I saw the release prices ...

    Then I didn't much care anymore.
  • gorg_graggel - Friday, October 22, 2010 - link

    why the heck didn't they just call them 6850 and 6530? according to the numbers those are the the true internal competitors...
    that would also fit with the premise that a next-gen card with the same naming conventions is at least a bit faster...
    the upcoming 6950 and 6970 cards could accordingly be named 6870 and 6890 respectively...
    and the next 2-chip variant could have the 69xx namespace for itself as it clearly wouldn't be justified to append an x2 to it, due to the same reasons the 5000 dual-chip cards don't do this...
    because of different chips? john doe doesn't know about such distinctions and just cares about performance (compared to older generations) when upgrading.
    he's just confused why the 6870 is slower than a 5870 and the guy who knows more about the tech behind it is pissed, because he has to explain to him why the names are not analogous to performance and why it's not kept consistent at least for a few generations...

    the explanations amd has given about this is not satisfying and gives me the impression that they deliberately want to confuse customers...however i can't think of a logical "why"...
  • jonup - Friday, October 22, 2010 - link

    To answer your question, Because that makes too much sense!
  • Donkey2008 - Friday, October 22, 2010 - link

    I agree 100%. The new naming scheme is misleading and it seems like 6750 and 6770 would have been much more accurate IMO. From AMD releases over the last several years, the performance of nex-gen 2nd tier cards are ~ equal to the previous top tier cards. This is the first time AMD has strayed from their naming scheme in a long time and it has all the makings of a marketing dept telling the engineers what to call their cards.

    Like to pointed out, 95% of consumers (the ones who waddle into Best Buy and tell someone at the Geek Squad counter to "install a gaming card") won't know the difference. Most of these average consumers will believe that a 6870 is a much better card performance-wise then the previous generation 5870, so they will see the price and think it is a steal. AMD is playing the numbers game with uneducated consumers ("higher numbers are better, right?") and it is sort of disappointing IMO. I expect more from them as a psuedo-fanboy (I am a current of owner of a 4850 and (2) 4890)

    I am still anxious to see what the 69xx has to offer, but some of the excitement of the entire 6xxx series launch has faded because of the new naming scheme. I just don't like marketing games and being played. Tech people are not only sharp, but HIGHLY biased and any deviation from outright perfection usually gets punished (i.e. Microsoft Vista, iPhone 4 antenna, Nvidia GT 250, etc etc). AMD should have known better.
  • gorg_graggel - Friday, October 22, 2010 - link

    hmmm well, on second thought it could make more sense in the future as the new scheme reorganized the naming to fit more to the performance categories...
    if they would have been named 6750/6770 their would be riots, because amd dared to raise the prices in the midrange segment, as the author of the article already said i think, which would be even worse...
    in the past amd changed strategies of how big and fast chips are a few times, but the naming didn't...they just didn't have single chips that deserved a name in the x900-range...
    so now that the cayman chip is in the 300w size amd changed its sweet-spot only strategy to a more standard strategy again with low-end, midrange, performance and high-end cards and the new naming does fit perfectly here...at least i have this impression...
    so it maybe confusing now, but depending on how future products turn out it will make more sense again...

Log in

Don't have an account? Sign up now