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

  • campbbri - Friday, October 22, 2010 - link

    Thanks for the great review. I don't know why everyone is complaining about mixing OC and Non-OC cards when you were extremely explicit in pointing it out.
  • krumme - Friday, October 22, 2010 - link

    I dont think you dont know why everyone is complaining.

    First. To be fair its far from everyone :), unfortunately because Anand is surrounded by far to many yes sayers. All positve. Great in many ways. But it does not develop the site as it could. There is a great huge community, and there is plenty of ressources to get ideas to new methology.

    Its good - if not vital - that Kyle is explicit about it. Otherwise it wouldnt be worth critizicing, then it would just look like a payed job, and nobody would care. Its not. But beeing explicit is not enough even if its most important and a huge quality. You need to have a good case. And Anand does have a very bad case.

    Read what Kyle wrote againg. Do you think this is his best and most sound decicion in his life? do he feel comfortable about it?

    He did betray himself a little bit. And he shouldnt do it. He should lissen to his own doubt.
  • snarfbot - Friday, October 22, 2010 - link

    yes i understand that, but i cant see how you can call a direct replacement that fails to outperform its predecessor as a success.

    especially when you consider that the prices have increased after launch as opposed to decrease as is normal. and have remained artificially high since, due to limitations at tsmc, which renders the cost argument pretty much moot.

    how about an analogy.

    6870 is to 5870 as 4770 is to 4870.

    and its on the same process which makes it even worse, although you cant really blame amd for that.

    you can very much blame their marketing department for making such a terrible decision though.

    its a terrible name, thats the whole point, at whatever price you cant call it a 6870 if it cant beat a 5870.
  • Trefugl - Friday, October 22, 2010 - link

    yes i understand that, but i cant see how you can call a direct replacement that fails to outperform its predecessor as a success.


    But the issue is that the 68xx series alone aren't really replacing the 58xx series. I think they are really splitting what the direct replacement to that market would have been into two - the 69xx (high-end enthusiast) and the 68xx (high-end mid-range).

    I agree that the naming scheme isn't the best, but I think a lot of that could have been mitigated (and maybe even made a non-issue) if the 68xx's weren't the first to launch. If the 69xx came out first people would have accepted them and been happy, but instead we have b*tching because of naming confusion...
  • Targon - Sunday, October 24, 2010 - link

    I missed this too until someone pointed out what I missed. The Radeon 6900 series will replace the 5800 series at the high end, and IS the proper high end part you are looking for.

    Back when DirectX 9 first came out, ATI only had DirectX 9 support in the old Radeon 9500 and 9700. When the X300, X600, and X800 came out, notice that AMD took the cards and started at 600 and 800, rather than 500 and 700 for the mid ranged and high end cards. This has continued a bit. In the HD 2000 series, you even had the HD 2900XT on the high end of the series, but then they went to the 3800, 4800, and 5800 series to mark the high end cards.

    So, AMD/ATI has been tweaking the names a fair bit. What initially threw me off is that the next generation high end cards are not the first cards to show up, and we have the mid-ranged cards showing up first.

    If the article said clearly, "We are reviewing the next generation mid range cards with the high generation 6900 due out next month" right up front in the article instead of buried in the text somewhere on page 2(or was it 3), there would have been less confusion.

    I don't mind the change in numbers if all parts come out at the same time, but for now, there is ONLY confusion because we have yet to see the 6970.
  • GaMEChld - Friday, October 14, 2011 - link

    I love how people are arguing over this naming change. As if people who buy discrete cards or look at video card specs don't know what their doing. If you don't know what you're buying, it serves you right.

    I don't know why this was so hard for people to understand. The 5700 was incredibly successful. AMD wanted to preserve that card for its performance and value. Thus, the 6700 name was taken. The 6800 model is a new model that sits BETWEEN where the 5700 and 5800 line had. If you recall, there was a MASSIVE performance gap between those lines, and AMD felt they should have something to bridge that gap.

    The new 6800 line bridges that gap. It offers NEAR 5800 power at a significant price reduction.

    And now ALL of the top tier cards are housed under the 6900 bracket, with the 6990 taking the dual GPU slot. If I had anything to complain about its the abandonment of the X2 designation on dual GPU cards.

    In fact, the only thing people should be angry about is the fact that the 6700 is virtually identical to the 5700 and offers little performance advantage. THAT is what is reminiscent of the 8800GT -> 9800GT transition. However, since the 5700 was a midrange product, maybe it received less attention than it should have.
  • DanaG - Friday, October 22, 2010 - link

    Now, if the 6870 is what should've been a 6770, and a 6970 is what should've been a 6870... then what'll they call what should've been a 6970? 6-10-70 / 6ten70? 6X70? 6999? Or will they go to 6970 X2?
  • spigzone - Saturday, October 23, 2010 - link

    6990 ... yhat wasn't so hard now, was it?
  • AMD_Pitbull - Saturday, October 23, 2010 - link

    Gotta say, I agree 100%. I really don't understand why everyone is getting so bloody upset with this. New product, new line. You couldn't predict what was going to happen? Sorry. Companies like to keep people guessing.

    Also, if you really want to get technical, this 6870 DOES beat the 5870 if a few things as well. Overall greater effective product AND cheaper? Win in my books. Sorry QQ'ers.
  • dvijaydev46 - Saturday, October 23, 2010 - link

    I tried converting a video file using my 5770 Hawk with MediaEspresso 6 (with hardware acceleration enabled of course), I wasn't impressed but Mediashow 5 properly utilized the GPU power and the speed difference in converting was clear. I'm not sure if there was a problem in the installation of my copy of MediaEspresso 6, but I think you guys can use Mediashow 5 to see if there is any difference in video conversion time with an AMD GPU as I don't have any other card.

Log in

Don't have an account? Sign up now