Radeon HD5xxx filtering issue

Page 5 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

BFG10K

Lifer
Aug 14, 2000
22,709
3,003
126

TLDR

Junior Member
Sep 30, 2010
4
0
0
If the fix isn't back-ported to the 5xxx series
I doubt that this issue can be fixed at software level. They had plenty of time to do it. Besides, considering that performance gap compared to Evergreen is not all that big, AMD wants every possible advantage for 68xx series. Improving "perfect" AF is one of them.

However, I hope they will make new MLAA algorithm available for older cards (officially or not). It will be nice to see games like GTA 4 with smoothed edges.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
It's nice when vendors listen to the community. We also ended up getting super-sampling from nVidia that way. :thumbsup:

That's the way I look at it. Raising issues in a constructive way and believe IHV's do read and listen.
 

Scali

Banned
Dec 3, 2004
2,495
0
0
That's the way I look at it. Raising issues in a constructive way and believe IHV's do read and listen.

Not always though... I've been asking AMD for OpenCL runtimes since at least November last year. Still nothing.
I'd also like to have the binaries of the Havok 'OpenCL' demo that they showed, but for some reason we're not allowed to get our hands on that either, even if you have a Radeon 5000-series and the OpenCL runtime, which would be exactly what they claimed they were using...
I bet that demo had some wood screws in it, if you know what I mean.
 

KARpott

Member
Sep 23, 2010
43
0
0
I highly doubt that this fix is back ported, because:
- The AF behaviour is not entirely controlled by the driver, especially the adaptive AF algorithm. As AMD has confirmed (if the transparencies are correct), they have simply messed up the AF level transitions in the algorithm and that's what I could find out with the Texel-Analyzer. Apparently, there's no limitation whatever but rather just a stupid mistake they have not realized because the noisy texture test isn't a standard test. It was (as I have thought) easily fixable, but they had to touch the hardware itself, and of course, they could maintain full performance, because they don't have to use more samples but rather distribute them more intelligently. On the contrary, I even believe they sample even less than before because they increase the number of samples more smoothly in those transition zones.
- AMD sells this improvement as a feature, not as a bug fix. The user should believe that they are giving us something more than what we should expect from them. But correct AF level transitions are more or less obligatory since the very introduction of AF itself. Back in the past, they introduced adaptive AF to reduce bandwith usage and then, it's simply not necessary to take 128 samples for a surface with an almost right angle. That would blur the whole texture into nothingness, under certain conditions.

Besides, both AMD and NV should rename their 16xAF to 10xAF. Even at the most steep angles, I couldn't squeeze out 128 samples out of the algorithm, but rather just up to 80 samples.
 

BFG10K

Lifer
Aug 14, 2000
22,709
3,003
126
I don’t think it can be fixed at the software level either (actually it can if you switch to ALU rendering, but that's not what I'm talking about).

What I’m saying is that a non-fix lends more evidence to it being an issue at the hardware level.
 

Idontcare

Elite Member
Oct 10, 1999
21,110
64
91
Not always though... I've been asking AMD for OpenCL runtimes since at least November last year. Still nothing.
I'd also like to have the binaries of the Havok 'OpenCL' demo that they showed, but for some reason we're not allowed to get our hands on that either, even if you have a Radeon 5000-series and the OpenCL runtime, which would be exactly what they claimed they were using...
I bet that demo had some wood screws in it, if you know what I mean.

Scali let's keep this on-topic please.

No derailing please, wood screws and Havok/OpenCL comments included.

Moderator Idontcare
 

KARpott

Member
Sep 23, 2010
43
0
0
I don’t think it can be fixed at the software level either (actually it can if you switch to ALU rendering, but that's not what I'm talking about).

What I’m saying is that a non-fix lends more evidence to it being an issue at the hardware level.

Ah, okay, I see.
Anyway, I'm interested to see in how far this is addressed in the upcoming reviews. I think AMD pursues the right strategy (for them). They try to convince us that, what was obligatory in the past, is now exclusive to the ones that buy new graphics cards. A bit like "oh let's remove AA so we can sell it as a new feature for the next generation". Kind of reminds me of Apple, but that's another story...
Don't get me wrong, I'm happy that they have addressed this issue, but I hope that this is not considered as an example of how generous ATI is to its customers, even though I'm positively surprised that they have apparently reacted to some criticism that came up the past year.
 

BFG10K

Lifer
Aug 14, 2000
22,709
3,003
126
It looks like it's confirmed to be a hardware issue on 5000 parts. This is the best explanation I've seen, and makes perfect sense based on what we've observed:

Eric Demers clarified that, despite some concerns about the Radeon HD 5000-series’ filtering, the new 6800s use the exact same angle-independent linear LOD as its predecessor, and the problem was limited to uneven shifting of kernels within a MIP level. This has been improved with better transitions in the same MIP layer.
http://www.tomshardware.com/reviews/radeon-hd-6870-radeon-hd-6850-barts,2776-5.html
 

Xarick

Golden Member
May 17, 2006
1,199
1
76
so completely unfixable in the 58 series. Essentially broken.
What are my chances of trying to send my card in under warranty claiming that it is broken on the hardware level.
 

Obsoleet

Platinum Member
Oct 2, 2007
2,181
1
0
so completely unfixable in the 58 series. Essentially broken.
What are my chances of trying to send my card in under warranty claiming that it is broken on the hardware level.

The same chances you'd expect for a refund on a car that you dyno'd at 148HP instead of the 151HP it's rated at.
 

Xarick

Golden Member
May 17, 2006
1,199
1
76
Sorry obsoleet, but I am car ignorant so your example makes no sense to me. With the 10.10s my card is running pretty awesome. So I guess I am wondering if there is a way ATI can fix it or put out something that minimizes it. Honestly I only notice it in trackmania personally, but now that I know it exists it drives me nuts.
 

KARpott

Member
Sep 23, 2010
43
0
0
It looks like it's confirmed to be a hardware issue on 5000 parts. This is the best explanation I've seen, and makes perfect sense based on what we've observed:


http://www.tomshardware.com/reviews/radeon-hd-6870-radeon-hd-6850-barts,2776-5.html

That's basically what I've deduced from the Texel-Analysis shots. Different AF-levels of course use different filter kernels (otherwise, the AF-levels wouldn't be different), and there needs to be a transition between AF levels. This is more or less independent of the mipmaps. So I was right about it, and it bothers me.
Correctly adjusting the AF-level and the transition between the corresponding filter kernels is regular business since the introduction of AF itself. I mean, AF has always been adaptive. Now they're selling their "fix of dumbness" as a feature.
I mean, everybody makes mistakes, but using this as for the pr-strategy of the HD6K series isn't the best way to apologize to all those that bought a HD5K.
 
Last edited:

Xarick

Golden Member
May 17, 2006
1,199
1
76
I did email powercolor to see what they say about it. They told me it isn't broken. The new cards just filter better than the 5800 series is what they tell me. They say that manufacturers are always improving their filtering I am told. Oh well.
 

Arkadrel

Diamond Member
Oct 19, 2010
3,681
2
0
Just wanted to say Texture filtering is fixed in the 68xx series.... 68xx has better texture filtering qualty than nvida does in the 4xx series.
 

KARpott

Member
Sep 23, 2010
43
0
0
That's not true imo.
They need to increase the sample rate before the shift to the next kernel (where the banding happens) instead of lowering the sample rate after the abrupt shift. If you compare both texture filters in videos with high res textures (not high frequency patterns!), you'll notice that on HD5K, there's not only banding, but lots of shimmering in front of the kernel shift zone and that the shimmering suddenly stops right after the edge (where the kernel has been changed to the next AF-level). That's a clear sign of undersampling, and apparently they have not completely fixed it on HD6K:
http://ht4u.net/reviews/2010/amd_radeon_hd_6850_hd_6870_test/index8.php
It's German, but you just have to download the videos. You'll notice that HD6K has a lot more flickering than the NV card.
To me, this doesn't seem to be any kind of cheating. They're just distributing their samples less intelligently, imo, resulting into about the same texel count as with NV hardware (despite the angle invariance).
 

Xarick

Golden Member
May 17, 2006
1,199
1
76
I tried asking about this on the official ati forums. My post was deleted. Apparently AMD is trying to suppress this.
 

KARpott

Member
Sep 23, 2010
43
0
0
Now comes the best part, guys!
The banding is theoretically existant on Barts as well!!!
You can reproduce it in the D3DFilterTester.
The transition between filter levels (kernels) apparently only happens for higher levels. The lowest levels still show the issue, though not as strong as on Cypress. I'm not sure whether this is interesting for games, but don't be surprised if you encounter banding on barts!
Later, I'm going to show you screenshots that demonstrate it!

Here they are:

Scene


Texel-Analysis


Sample-Difference


Their fix does not apply to the lowest AF-levels (which of course does not mean that you will still see banding in most games, but theoretically, you can encounter it), and it saves them about 8% of the samples. All the areas behind those edges were oversampled on cypress which resulted in banding. Now, they, as I have thought, have decreased the sample rate at those points, but they haven't touched anything else in the algorithm. That means that we're probably facing even more flickering than on Cypress.

Btw. I modded the setup inf to enable HQ on HD5850. It's identical to A.I. off.

EDIT:
Here's your ingame proof of this problem:
http://www.multiupload.com/JAZA8MNZ5Z

That's some lousy bugfixing, isn't it...
 
Last edited:

KARpott

Member
Sep 23, 2010
43
0
0
Yes, but the fact that the banding still exists while NV can avoid it for years is embarrassing. It's not about whether it is visible or not, it's more about "you told us that you have fixed it while you haven't completely".
 

Xarick

Golden Member
May 17, 2006
1,199
1
76
I watched your video.. and while still visible it barely is so..and you really had to angle it to make it visible. So it may not be completely fixed, but most people now would never notice and it shouldn't bother anyone. I wonder if this is why nvidia has not implemented angle independent. Maybe they know there is this issue and haven't figure out how to fix it either.
 

KARpott

Member
Sep 23, 2010
43
0
0
Okay, let me get a little more precise on that matter:

First, it's not clear whether or not the AFTester always determines the correct amount of samples. Now comes the a little bit more complicated reason:
The analysis is (most likely) based on letting the algorithm sample a special texture for each pixel. The result that is then forwarded to the frame buffer gets analyzed by the cpu, and from this analysis, the most likely sample count is determined. The concept works because in the filter kernel, each texel sample has an adaptive weight and distance to the other sample along the long axis of the ellipsis that is laid into the pixel footprint (the "shadow" of the pixel in texture space), and if you adjust a floating point texture in multiple passes and let it filter, you get information about the sample count by comparing the texture input with the filter output. What this algorithm straight out misses are samples that are very close to each other with very similar weights. After all, that's not so dramatic as those samples do not contribute the most to the filter result, but it might have a strong influence on the final results. That, of course, does not render those analyses completely pointless, but you must consider quite an error in the measurement, but certainly not to the point where it's useless.

Let's come to the banding and the possible reason again.
The literature implementation of angle invariant AF reconstructs the pixel footprint in the texture space by using texture gradient calculations and then lays an ellipsis into this footprint. Along its long axis, AF requests the additional samples, filtering in the orthogonal direction is mostly covered by mipmapping.
Now, the length of the long axis divided by the length of the short axis yields the AF ratio. If the the long axis is 3 times longer than the short axis, it takes 4 trilinear samples (=32 texel reads). 4 samples, because traditionally, only powers of two were allowed (2:1,4:1,8:1...), but I think it is save to say that nowadays they're, if at all, restricted to even ratios.
The reason for this power of two ratios is simply that you want to give each sample the same weight, and this, in computer language, just implies a bitwise shift instead of a true division if you keep to the ratios. But TMUs have become more powerful over the years, and as my sources state, they are in most cases restricted to even ratios.It is, however, key to keep to the Nyquist theorem (sampling frequency >= double the information frequency), to avoid unnecessary flickering.
Yet, AMD and NV do not fully obey the mathematical law. To save performance and bandwidth, they do not keep to the reference implementation, but instead have developed more intelligent sample distributions that need less samples. And here is the first key point: If those analyses are correct, there should be something wrong in that part of the algo that calculates the right sample amount.
Here's what happens on HD5K:
1. They have abviously shifted transition a little too far, resulting in flickering and moiree.
2. Strangely, after the transition they first increase the sample rate but then l!ower it again!. That's totally irrational behaviour. Why should it take less samples further in depth where texture distortion is bigger? This is either a bug in AMDs hardware or it is related to what I want to explain now.

Generally, the principle alone leaves potential for banding, as it's probably not possible to increase the sample rate fully progessively, to always stay just above the Nyquist level. The problem is solved by
- giving those additional samples after each transition different weights in an adaptive manner
- progresively diverging sample positions
- a combination of both

Let me draw a little picture:
2 trilinear samples along the long axis just before the algo switches to the next level
o------------o
next level, 4 samples (O means two samples, the more black the more weight)
O-----------O
more texture distortion
o-o-------o-o
even more distortion
o---o---o---o

This is just one of many possible solutions (you can imagine how tricky it can be to distribute 16 samples intelligently). This is the next key point.
There might be something wrong or a bug in the routine that determines the weights, as this algorithm MUST work together with the one that determines how much "optimization" is going on, as the weight and position of each sample always depends on the amount of samples used.

And this might also the reason for strange results in the AFTester. A bad sample distribution might lead to wrong estimates about the amounts of samples used. So this might be another explanation for what we see in the AFTester, and it would still explain why those harsh transtions in those Texel-Analysis shots conincide with the banding.

Apart from that, you're (Xarick) obviously right that it's not a big deal in terms of most games apart from TM, but AMD
1. has been totally quiet about this before the Barts launch and straight out rejected any request for explanations or whatever
2. then not only promised to fix a bug for Barts, but told us that they're giving us a new feature
3. and at last failed to do what they can do with higher AF levels, which means that they have the bug for yet another generation, plus a potential for even more flickering

I know that AMD has to make money, but what they have done with Barts regarding AF is certainly not "the way it's meant to be played", to say it with NV terms.
 

KARpott

Member
Sep 23, 2010
43
0
0
The point is:
Without SGSSAA, you most-likely won't see it anymore, so in case you can live with AMDs filtering quality and don't play with SSAA very often, it probably isn't a reason anymore.
 

Throckmorton

Lifer
Aug 23, 2007
16,829
3
0
I had to look up SGSSAA.

I thought antialiasing by rendering everything at a higher res then downsampling was dead. That's an outdated 10+ year old technique!!