PDA

View Full Version : Forceware texture filtering quality


StealthHawk
10-16-03, 12:21 AM
Introduction
This thread examines texture filtering on a GeForceFX. It does not really apply to earlier GeForce cards, only to GeForceFX cards. GeForce3/4 cards have output equal to screenshots of driver 43.45 with Intellisample set to Application. The same applies to GeForce1/2 cards, with the exception that they are limited to 2x AF.

Bilinear filtering: this is the base filtering used in games. The big problem with bilinear filtering is that it exhibits something known as mipmap banding. You will be able to see the different mipmap levels on the screen, so you will see alternating layers on the screen where everything in that layer is blurry, the next clear, the next blurry, etc. This effect will be most noticeable in motion.

Trilinear filtering: a more advanced form of texture filtering which uses additional samples to blend the mipmap levels together. This gets rid of mipmap banding. The areas closest to you will be sharp and detailed and you lose progressively lose detail until you hit blur.

Anisotropic filtering: the most advanced form of texture filtering which will push the mipmap levels back further.

Brilinear filtering: this term was coined to explain the filtering done by NVIDIA that replaced true trilinear filtering in newer drivers. Essentially there is less blending of mipmap levels. For readabilities's sake, the word "brilinear" will appear in italics from this point on.

Testing Methodology
All screenshots were taken with a GeForceFX5900Ultra with various drivers. The left side of each image shows texture stage 0, and the right side shows texture stages 1-7. Degree of anisotropic filtering is given, followed by which setting the Intellisample slider was at. The naming scheme of the Intellisample settings changes between drivers, but the best image quality setting of the three is always listed left to right.

Important: NVIDIA's Intellisample settings do not force the level of filtering. They merely expose a cap on the maximum achievable filtering. In other words, it can only force lower image quality.

43.45
0x AF: Application (http://www.mrclam.com/~stealth/4345%200x%20A.jpg) | Quality (http://www.mrclam.com/~stealth/4345%200x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4345%200x%20P.jpg)
2x AF: Application (http://www.mrclam.com/~stealth/4345%202x%20A.jpg) | Quality (http://www.mrclam.com/~stealth/4345%202x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4345%202x%20P.jpg)
4x AF: Application (http://www.mrclam.com/~stealth/4345%204x%20A.jpg) | Quality (http://www.mrclam.com/~stealth/4345%204x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4345%204x%20P.jpg)
8x AF: Application (http://www.mrclam.com/~stealth/4345%208x%20A.jpg) | Quality (http://www.mrclam.com/~stealth/4345%208x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4345%208x%20P.jpg)

All drivers up to 43.45 use these patterns. Application sets a maximum of trilinear, Quality has a maximum of brilinear, and Performance effectively uses bilinear.

43.51
0x AF: Quality (http://www.mrclam.com/~stealth/4403%200x%20Q.jpg) | Balanced (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg) | Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg)
2x AF: Quality (http://www.mrclam.com/~stealth/4403%202x%20Q.jpg) | Balanced (http://www.mrclam.com/~stealth/4403%202x%20P.jpg) | Performance (http://www.mrclam.com/~stealth/4403%202x%20HP.jpg)
4x AF: Quality (http://www.mrclam.com/~stealth/4403%204x%20Q.jpg) | Balanced (http://www.mrclam.com/~stealth/4403%204x%20P.jpg) | Performance (http://www.mrclam.com/~stealth/4403%204x%20HP.jpg)
8x AF: Quality (http://www.mrclam.com/~stealth/4403%208x%20Q.jpg) | Balanced (http://www.mrclam.com/~stealth/4403%208x%20P.jpg) | Performance (http://www.mrclam.com/~stealth/4403%208x%20HP.jpg)

43.51's Quality mode is slightly inferior to 43.45's Application mode. 43.51's trilinear filtering is not quite as good as 43.45's. There is ever so slightly less blending of the mipmap levels.

43.51's Balanced mode handles 45 degree angles in 2x and 4x better than 43.45's Quality mode. 43.51's Balanced 8x has a better filtering pattern than 43.45's Quality 8x. However, in 43.45 Quality was using brilinear. Balanced in 43.51 has almost resorted to doing straight bilinear.

43.51's Performance mode has significantly better filtering patterns than 43.45's Performance mode. It now has the same filtering quality as 43.51's Balanced though, in other words, almost complete bilinear.

Filtering quality has decreased across the board for all settings, while the two lower levels of Intellisample, Balanced and Performance, have improved sampling patterns. D3D and OGL quality is the same.

There is special case filtering being done in the game Unreal Tournament 2003. You can view the filtering patterns used in UT2003 by renaming the texture filtering application to "ut2003.exe," these changes are obviously triggered by the filename. This is the frist driver that this occurs in. This only works in D3D.

"ut2003" 0x AF: Quality (http://www.mrclam.com/~stealth/UT4351%200x%20Q.jpg)
"ut2003" 2x AF: Quality (http://www.mrclam.com/~stealth/UT4351%202x%20Q.jpg)
"ut2003" 4x AF: Quality (http://www.mrclam.com/~stealth/UT4351%204x%20Q.jpg)
"ut2003" 8x AF: Quality (http://www.mrclam.com/~stealth/UT4351%208x%20Q.jpg)

Brilinear from 43.45 replaces the trilinear filtering we normally would expect from 43.51's Quality mode, while the filtering patterns stay intact. Balanced and Performance are unaffected.

44.03, 44.65, 44.67
Standard filtering quality is the same as it was in 43.51. D3D and OGL quality is the same. However, "ut2003" quality takes an interesting twist, as you can see below.

"ut2003" 0x AF: Quality (http://www.mrclam.com/~stealth/UT4403%200x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg)
"ut2003" 2x AF: Quality (http://www.mrclam.com/~stealth/UT4403%202x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%202x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%202x%20HP.jpg)
"ut2003" 4x AF: Quality (http://www.mrclam.com/~stealth/UT4403%204x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%204x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%204x%20HP.jpg)
"ut2003" 8x AF: Quality (http://www.mrclam.com/~stealth/UT4403%208x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%208x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%208x%20HP.jpg)

This is the first time that we see the drivers treating texture stages differently. Brilinear filtering is used on texture stage 0, while texture stages 1-7 receive some level of bilinear filtering. Performance and High Performance have no change from normal operation while AF is disabled.

In Quality mode, you can see that texture stage 0 has the same brilinear filtering as 43.51's UT2003 filtering quality. In addition to that, no matter what level of AF is selected, only 2x AF will be used on texture stages 1-7, with a bilinear filtering quality between 43.45's Performance and 43.51's Performance modes.

When AF is enabled in Performance mode, straight bilinear filtering is being done on all texture stages. A maximum of 2x bilinear filtering is used on texture stages 1-7 despite the degree of AF being used.

When AF is enabled in High Performance mode, straight bilinear filtering is being done again on all texture stages. Texture stages 1-7 always receive 0x AF(ie, no AF).

44.90, 45.20, 45.23, 44.33
Same as 44.03, except that renaming the filtering test application "ut2003" doesn't work anymore. From this point on, this post is not relevant to what is being done in UT2003. In other words, UT2003 may or may not follow what is being shown from here on out.

51.75
Texture stage optimization has now found its way to all D3D applications, as shown below. D3D and OGL quality is NOT the same. OGL has no texture stage optimizations, and OGL filtering is the same as it was in 43.51.

0x AF: Quality (http://www.mrclam.com/~stealth/5175%200x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg)
2x AF: Quality (http://www.mrclam.com/~stealth/5175%202x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/4403%202x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/5175%202x%20HP.jpg)
4x AF: Quality (http://www.mrclam.com/~stealth/5175%204x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/5175%204x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/5175%204x%20HP.jpg)
8x AF: Quality (http://www.mrclam.com/~stealth/5175%208x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/5175%208x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/5175%208x%20HP.jpg)

In Quality mode, trilinear filtering is being done on texture stage 0 when AF is off. Brilinear filtering is being done on texture stages 1-7. When AF is on, texture stages 1-7 get 2x brilinear, no matter what degree of AF is selected.

Performance mode acts normally except that on texture stages 1-7 a maximum of 2x Performance AF is used.

High Performance is like Performance mode, texture stage 0 stays the same, but texture stages 1-7 never receive AF.

52.13, 52.14, 52.16
With this driver we see a few changes. If you select "application-controlled" instead of forcing a particular level of AF on(0x...8x) you will get different levels of quality between the two. D3D and OGL quality is NOT the same. OGL has no texture stage optimizations, and OGL filtering is the same as it was in 43.51.

0x AF app: Quality (http://www.mrclam.com/~stealth/5213%200x%20QA.jpg) | Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg)
2x AF app: Quality (http://www.mrclam.com/~stealth/5213%202x%20QA.jpg) | Performance (http://www.mrclam.com/~stealth/4403%202x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%202x%20HP.jpg)
4x AF app: Quality (http://www.mrclam.com/~stealth/5213%204x%20QA.jpg) | Performance (http://www.mrclam.com/~stealth/4403%204x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%204x%20HP.jpg)
8x AF app: Quality (http://www.mrclam.com/~stealth/5213%208x%20QA.jpg) | Performance (http://www.mrclam.com/~stealth/4403%208x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%208x%20HP.jpg)

When the driver is set to let the application decide what AF to use, there will be no texture stage optimizations by default. You can see that in all three Intellisample modes the quality of each texture stage is the same. We see that Quality mode no longer does trilinear, but does brilinear instead. In fact, the IQ in 52.13's Quality mode is only slightly better than that of the optimized "ut2003" brilinear filtering as will be illustrated better later. Performance and High Performance are identical to previous Performance and High Performance modes; there are no changes in these settings.

If AF is forced in the control panel there are texture stage optimizations.

0x AF cp: Quality (http://www.mrclam.com/~stealth/5213%200x%20QA.jpg) | Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg) | High Performance (http://www.mrclam.com/~stealth/4403%200x%20PHP.jpg)
2x AF cp: Quality (http://www.mrclam.com/~stealth/5213%202x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%202x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%202x%20HP.jpg)
4x AF cp: Quality (http://www.mrclam.com/~stealth/5213%204x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%204x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%204x%20HP.jpg)
8x AF cp: Quality (http://www.mrclam.com/~stealth/5213%208x%20Q.jpg) | Performance (http://www.mrclam.com/~stealth/UT4403%208x%20P.jpg) | High Performance (http://www.mrclam.com/~stealth/UT4403%208x%20HP.jpg)

In Quality mode with 0x AF forced in the control panel, texture stages 0-7 get the regular 52.13 filtering quality. When 2x AF is forced, texture stage 0 gets standard 52.13 filtering quality and texture stages 1-7 get "ut2003" brilinear 2x AF. You can see that the left side of these images has slightly better filtering than the right side. For 4x and 8x AF you get normal filtering and full degree AF on texture stage 0 and "ut2003" brilinear 2x AF on texture stages 1-7.

Performance and High Performance modes behave exactly like 44.03's "ut2003" Performance and High Performance modes.


Conclusion
43.45 and older drivers offered the highest image quality attainable with a GeForceFX. The most current drivers you can download today will give you quality slightly better than the old special case UT2003 filtering in the best case, which incidently is the same filtering style as NVIDIA's old Intellisample: Balanced setting(known as Quality in 43.45 and Balanced in older drivers). 43.51 offers better quality in most D3D games than 52.13 does, except for UT2003.

In practice, the new brilinear introduced in 52.xx may not have the mipmap transition problems that the original brilinear had(which were already hard to see). In many/most/all situations there may be no discernable difference between the new brilinear and trilinear. This will of course depend on the game(textures), and the player(eyes). I myself could detect the difference between trilinear and the old brilinear, but not the new brilinear.

The Baron
10-16-03, 09:17 AM
Oh, and BY THE WAY.

Stealth is insane. Completely, utterly, insane.

SH: "You think I could make NV30 drivers run on NV35?"
Me: "Well... uhhh... I guess you could add it to the INF and hope for the best, but I doubt it will work."

*ten minutes later*

SH: "BWAHAHAHAHAHAHAHA! IT LIVES!"

Sazar
10-16-03, 09:39 AM
lies... all lies..

stealth is my precioussssss !!!

Paul
10-19-03, 07:16 AM
Nice thread. Good Job.

Red Dog
10-19-03, 07:24 AM
Very nice work Stealth,

Now I know what driver set I would be running if I had a Nv card.

Now can I get a similar report on Cats?

Please, pretty please?

Ive often wondered about it.

stevem
10-20-03, 12:29 PM
Originally posted by The Baron
SH: "You think I could make NV30 drivers run on NV35?"
Me: "Well... uhhh... I guess you could add it to the INF and hope for the best, but I doubt it will work."

*ten minutes later*

SH: "BWAHAHAHAHAHAHAHA! IT LIVES!"
All Nvidia cores are both forward & backward compaible with their driver sets. They place great store on regression testing...

fivefeet8
10-22-03, 02:43 PM
all links are down.

StealthHawk
10-22-03, 02:52 PM
Originally posted by fivefeet8
all links are down.

They work for me. Sometimes my host goes down :eek: So just try later if it doesn't work.

Sazar
10-22-03, 05:08 PM
stealth.. can the images be hosted on the nvnews server or does it consume too much space?

The Baron
10-22-03, 05:28 PM
Originally posted by Sazar
stealth.. can the images be hosted on the nvnews server or does it consume too much space?
I'll look into that this evening.

Sazar
10-22-03, 05:37 PM
Originally posted by The Baron
I'll look into that this evening.

just a suggestion m8.. since it seems its stickied and what not... and it was good work afterall :)

btw... did you guys comment on my news suggestion from last week ?

fivefeet8
10-23-03, 04:15 AM
Originally posted by StealthHawk
52.13
If AF is forced in the control panel things drastically change.

In Quality mode with 0x AF forced in the control panel, texture stage 0 gets the regular 52.13 filtering quality. Texture stages 1-7 get "ut2003" filtering quality. When 2x AF is forced, texture stage 0 gets standard 52.13 filtering quality and texture stages 1-7 get "ut2003" 2x AF. You can see that the left side of these images has slightly better filtering than the right side. For 4x and 8x AF you get normal filtering and full degree AF on texture stage 0 and "ut2003" 2x AF on texture stages 1-7.


WHQL 52.16 Dets
Ut2k3
8xAF per application/8xAF per Control Panel

http://f1.pg.briefcase.yahoo.com/bc/fivefeet8@sbcglobal.net/lst?.dir=/My+Documents/PC&.view=l

I have uploaded 3 shots of UT2k3 using 8xAF-quality per application and 3 shots of UT2k3 with 8xAF-quality per CP. Seems to me these new drivers are using the right AF on stages 1-7 through the COntrol Panel.

I've also uploaded a shot used by 3dcenter.org which shows the 45.23's 8xAF-quality per application.

I'm seeing some strange things though. Using the AFtester program, it shows that using Control Panel 8xAF forces 2xAF on stages 1-7. But looking at those shots from UT2k3, 8xAF CP is really using 8xAF. Strange though, the only difference between the per application/ Control panel shots is the sky in the background.

StealthHawk
10-30-03, 05:58 PM
Updated for 52.14 and 52.16. The flitering is the same as in 52.14 and 52.16.

I would also like to point out that the picture for 52.13 Quality 0x Control Panel was incorrect :o Quality 0x CP and Quality 0x Application are identical at all texture stages for all 52 series drivers :o

truth
10-31-03, 12:15 PM
may I know why I have image corruption when I am using FW 52.16 which is not present in 45.23 when I play this game Midnight Club II using FX-5800, with AA4x AF8? I had posted in this similar forum but doesn't seem to be receving any feebacks, so I really hopes someone can tells me whether which best driver is suitable for my FX-5800 for any kinds of games?

Here's one screen shot that I captured.

http://sg.geocities.com/wangjiake/MidniteClub.bmp

SuLinUX
11-13-03, 10:10 PM
Has anyone noticed the AF filtering quality in UT2003 because in CTF-Face3 and a few other levels it dont seem to filter the floor very well at all

I had to ajust the LOD to -1 and that sorted it, or is that because TF is broken?

fivefeet8
11-13-03, 10:35 PM
Originally posted by SuLinUX
Has anyone noticed the AF filtering quality in UT2003 because in CTF-Face3 and a few other levels it dont seem to filter the floor very well at all

I had to ajust the LOD to -1 and that sorted it, or is that because TF is broken?

You need to set the AF to application. Then edit the UT2003.ini file and set AF to 8. TF has been broken for a while. Doesn't make much difference anyway IMO. What your seeing is the 8xAF per control panel. Setting it to application specific fixes it.

StealthHawk
11-14-03, 05:42 AM
Originally posted by SuLinUX
Has anyone noticed the AF filtering quality in UT2003 because in CTF-Face3 and a few other levels it dont seem to filter the floor very well at all

I had to ajust the LOD to -1 and that sorted it, or is that because TF is broken?

What you're seeing is the result of the texture stage optimization NVIDIA has in place. Set the AF slider to application controlled and set AF from the ut2003.ini file.

SuLinUX
11-14-03, 08:29 PM
Originally posted by StealthHawk
What you're seeing is the result of the texture stage optimization NVIDIA has in place. Set the AF slider to application controlled and set AF from the ut2003.ini file.

Yes that worked fine, I never used it in the ini because I assumed the driver would do it.

I know this is Windows driver forum but the Linux drivers dont have that problem at all so it looks like Nvidia just messed with the windows ones.

You see in Linux you can set the degree of AF in the startup script of the game, in UT2003/Linux AF x4 looks just as good as AF x8 in windows.

Just thought you like to know, I know the Linux driver are different but it just backs up what you are saying even more.

StealthHawk
03-07-04, 03:53 AM
More changes to filtering quality in 56.56 which [H] (http://www.hardocp.com/article.html?art=NTk3LDI=) has delved into a little bit.

One big change that has taken place(but not noted in the linked article) is that brilinear has found its way into OGL. I can only assume that D3D and OGL now have the same quality. Previously, as noted in my first post in this thread, OGL still had trilinear.

ChrisRay
03-18-04, 02:48 AM
Man Nvidias AF is still leaving a bit too be desired Unfortunately.

I couldnt stand the way my 9500 Pro was doing AF in my MMORPG, But in comparison the performance loss on NVidia hardware is just insane at times.


I also did some more tests with AF. With the Nature test in 2001.


No AF


82.2 FPS


8x Quality

61.5 FPS


8x Performance

61.6 FPS


8x High Performance

68.8 FPS



Basing my results here, I can see absolutely no reason to use Performance mode At all. High Performance is alright, And I'm satisfied with it I guess. But if you think Performance is an in between you are going to be extremely disapointed.


They mighta as well just remove performance ^^


Anyway.. good work SH.. I'm happy and Disapointed with the AF on the FX card. Almost willen to say ATIS implementation is just a lot better when it comes to speed.

At what price comes Quality? :(

StealthHawk
03-19-04, 02:09 PM
3dmark2001 might be a bad example to use because it defaults to bilinear filtering. If you enable trilinear you should see a difference between Quality, Performance, and High Performance.