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

  • GullLars - Saturday, October 23, 2010 - link

    One sollution would be to to move away from pure number based naming, and do something like:
    AMD/nVidia AG#S# ([Maker]_[Architecture][Generation][# generation of architecture][Market Segment][# of relative performance within segment 1-9]
    Or possibly AMD/Nvidia Architecture Gen# S#
    Example:
    AMD EG1E9 or Evergreen Gen1 E9 = 5970 (Enthusiast)
    nVidia FG1E9 = 480
    AMD Evergreen Gen2 G5(?) = 6850 (Gamer)
    AMD Evergreen Gen1 V7 = 5770 (Value)
    AMD Evergreen Gen1 M5 = 5350 (Media)

    These are just early floating thoughts, which could be refined by marketing monkeys.
  • Exelius - Saturday, October 23, 2010 - link

    Marketing monkeys have no intent on making it simple to understand; if you don't know exactly what you're buying, it's easier to sell it to you for more than they would be able to otherwise.

    It's not an accident that the numbering is confusing; if you don't know what you're looking at then a 6870 at a lower price than a 5870 looks like a great deal.
  • MonkeyPaw - Friday, October 22, 2010 - link

    Big deal, I say. The card is a few % slower, but is more efficient and is cheaper. People who will actually notice the drop off will probably read reviews first. Besides, if the x900 series is for dual GPU designs, then the naming might not be far off.

    Also, if I had to pick between the 5800 or the 6800, I'd probably get a 6800.
  • therealnickdanger - Friday, October 22, 2010 - link

    Don't forget improved image quality!

    It's only disappointing because with a new moniker, I expect new tech, but then again, how long did NVIDIA push G92? 3 generations as different products? LOL
  • Rafterman - Friday, October 22, 2010 - link

    What exactly have NVidia got to do with this, no fanboyism please.
  • morphologia - Friday, October 22, 2010 - link

    They are a comparable company with comparably ridiculous naming conventions. How do you go from 9000 to 200?

    Talk about fanboyism...claiming irrelevancy when it's totally relevant reveals your fanboy decoder ring quite clearly.
  • Alilsneaky - Friday, October 22, 2010 - link

    I hated nvidia for doing it, why should amd now be forgiven for resorting to doing the same bullshit just because nvidia did it before them?

    I had someone tell me earlier 'that's business'.

    WHAT? No it's bloody not, a scam is a scam, when people start equalling questionable practices like these to business then something is really wrong with today's society.
  • Mr Perfect - Friday, October 22, 2010 - link

    What Nvidia did was simply rename the 8800 cards to 9800 card. Same exact chip, same exact clocks, same exact board(at least initially). There where owners of 8800GTs who simply edited the name in the BIOS of their card and had a 9800GT!

    The reason AMD is getting a pass from most people is because this isn't a purely renamed card. It's a redesigned chip on a new PCB with a poor name. If, on the other hand, AMD renames the 5750 and 5770 to the 6750 and 6770 you can expect them to get nailed to the wall right next to Nvidia.
  • pcfxer - Saturday, October 23, 2010 - link

    It was very clear why he mentioned NVIDIA. You should read his post...
  • snarfbot - Friday, October 22, 2010 - link

    at least all the iterations of g92 improved performance over their predecessor.

    compare this launch to the x1xxx series of ati products, the x1800 was replaced by the x1900 which was replaced by the x1950. all of which improved performance over their predecessor. all the while on the same process 90nm.(save for the 1950pro and gt, which were mainstream parts.)

    imagine if they named the x1900 the x2900, and somehow it actually performed worse than the x1800.

    thats what they did here, and thats why it fails imo.

    if they just called it hd5790 and kept it at the same price people wouldve gobbled it up anyway, without sacrificing their integrity.

    just a bunch of numbers, but what it means in mindshare is important, and all most people will remember about this generation, is that it was worse than the 5 series and worse than nvidias.

    all aboard the fail boat. honk honk.

Log in

Don't have an account? Sign up now