Jump to content
  • Advertisement
Sign in to follow this  
Harry Hunt

What happened to the texture filtering option?

This topic is 3829 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

In the past, most games allowed you to choose between bilinear, trilinear and anisotropic texture filtering. In most modern games however, that option is gone. I'm wondering what the motives behind that are and how they're dealing with texture filtering now. Do they just pick the best option available? Maybe somebody can shed some light on that subject. Thanks a lot in advance!

Share this post


Link to post
Share on other sites
Advertisement
For the most part, I think they just pick the best option available. Nowadays, PC GPUs (or at least, the ones that would be in posession of people that care about having AF) have almost free AF. e.g. on the 8800GTX, it's basically free to turn on even 16xAF. It just provides a significant jump in quality for a very small performance hit. Also, chances are that setting is modified (among other things) when you change the 'texture quality' slider in some games.

Share this post


Link to post
Share on other sites
Quote:
Original post by Cypher19
For the most part, I think they just pick the best option available. Nowadays, PC GPUs (or at least, the ones that would be in posession of people that care about having AF) have almost free AF. e.g. on the 8800GTX, it's basically free to turn on even 16xAF. It just provides a significant jump in quality for a very small performance hit.

That's definitely not true. If you are texture fetch limited (something Halflife 2 almost certainly is not), then turning on AF with a large filter tap can seriously hurt performance. And hitting the texture bandwidth limit is something more and more common nowadays, even with functionality shifting over to ALU instructions.

Share this post


Link to post
Share on other sites
Quote:
If you are texture fetch limited (something Halflife 2 almost certainly is not)


Really? I almost would have said HL2 is one of the most texture fetch dependant games on the market (rather, in the sense that it doesn't have much ALU stuff happening under the hood).

Regardless, the other games in that article, while fairly outdated, still tell the same story of "AF has almost no influence on a modern PC GPU* ". The only games that have a noteworthy drop in performance was Company of Heroes (about 10% at max resolution and 4xAA when going from 0 to 16x) and Pacific Fighters (25%). With a good GPU, unless your access patterns are fucked to hell or you have a large number of texture layers causing you to cache miss all of the time, an increase in AF is borderline negligible especially when you compare it to the benefit it gives most of the time.


*I am aware that AF can cause some bad problems. I have no direct experience, but I know that if you have more than a handful of texture layers on the 360, dropping AF levels has a fairly significant performance savings. But at the same time, I am aware that Xenos is a totally different beast than, say, the G80; the cache sizes are way smaller, and cache misses cause much more of a performance impact. As far as I know, unless you're running off of that "oh jesus 50% of our rendering time is tied up in texture cache misses" performance cliff, which most games don't do on a modern PC GPU (ten bucks says that that's what's happening in Pacific Fighters), turning up the AF quality simply doesn't make that big of an impact.

Share this post


Link to post
Share on other sites
Quote:
Original post by Cypher19
Really? I almost would have said HL2 is one of the most texture fetch dependant games on the market (rather, in the sense that it doesn't have much ALU stuff happening under the hood).

Not for modern GPUs. HL2 is old technology.

Quote:

With a good GPU, unless your access patterns are fucked to hell or you have a large number of texture layers causing you to cache miss all of the time, an increase in AF is borderline negligible especially when you compare it to the benefit it gives most of the time.

Nope. Have you actually tried it ? I did, a lot. And our results show the complete opposite of these figures. The reason behind the discrepancy is very simple - none of these games push the texture fetch bandwidth to its limits on modern cards. They might push fillrate to the max at high resolutions, but this is something entirely different, of course.

Sure, AF gives an incredible increase of quality. And most of the time, this improvement of quality is worth the framerate drop. However, calling it 'negligible' or even 'free' is very misleading. It's definitely not free. It's just that the latency is masked in most engines, due to the fact that either the texture cache saves the day, or that the pipeline stalls somewhere else.

A lot of access patterns on modern shaders are not too texture cache friendly. And many layers become more and more common place. Consider a terrain renderer, for example. For good photorealistic terrain, you can easily come up to 10 or more layers (blended base layers, detail layers, BRDFs, etc).

Or consider things like Poisson disc blurring (for eg. sanded glass or blurry reflections). This stuff literally murders the texture cache, and there's no real alternative if you want good quality. Or bumped reflections, which make the texture fetching logic jump around like mad. And so on...

Quote:

As far as I know, unless you're running off of that "oh jesus 50% of our rendering time is tied up in texture cache misses" performance cliff, which most games don't do on a modern PC GPU

Well, some engines do (although not necessarily games ;). After state changes, texture fetch latency is the main performance killer in our engine. And you can only move that much to ALUs, sometimes you just hit limits (see the blurring example above).

Then again, all this might become a moot point on the next hardware generation(s), which will considerably improve on texture cache handling and general texture bandwidth.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!