Bug 91786

Summary: setting texture filtering to nearest has no effect when anisotropy is greater than 1
Product: Mesa Reporter: CapsAdmin <eliashogstvedt>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: rain.backnet+bugzilla_freedesktop
Version: 11.1   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Patch to only apply anisotropic mode if filter is set to linear

Description CapsAdmin 2015-08-28 07:24:22 UTC
I probably shouldn't set anisotropy to anything but 1 when using nearest filtering on textures but this does not happen with any other driver I've tried.
Comment 1 CapsAdmin 2015-08-28 07:43:29 UTC
ps: I'm not sure what driver to select with intel hd 5500, please change it to the appropriate and remove this message if it's wrong.
Comment 2 Matt Turner 2015-08-28 18:36:39 UTC
(In reply to CapsAdmin from comment #1)
> ps: I'm not sure what driver to select with intel hd 5500, please change it
> to the appropriate and remove this message if it's wrong.

You got it right (Drivers/DRI/i965) :)
Comment 3 rain.backnet+bugzilla_freedesktop 2016-04-17 00:10:57 UTC
This is still present in 11.1.2, in i965-va-driver.  Some example screenshots and code below:

Nearest neighbour, no anisotropy settings specified: https://i.imgur.com/LadPw7T.png - note the clearly defined windows in the foreground, but the banding in the building on the right.

As above but with anisotropy set to 16.0: https://i.imgur.com/9YiQi2S.png - note that the banding on the right is gone, but the nearest neighbour effect on the nearby windows now looks like linear filtering.

Finally, with anisotropy explicitly set to 1.0: https://i.imgur.com/7ZckqqN.png - this is indistinguishable from the screenshot with no anisotropy set at all.

Other drivers (on Windows, OS X etc) render this scene correctly with anisotropic filtering removing the banding while still showing nearest neighbour filtering in the foreground, I can provide comparable screenshots if that would be useful.

Relevant parameters to reproduce: 
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  // anything other than 1.0f below disables the nearest neighbour filtering
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16.0f);
Comment 4 Kenneth Graunke 2016-05-02 02:11:38 UTC
Created attachment 123400 [details] [review]
Patch to only apply anisotropic mode if filter is set to linear

Does the attached patch make it match your expectations?
Comment 5 Kenneth Graunke 2017-09-14 22:41:45 UTC
My patch landed a while back, and that fixed a bunch of anisotropic issues in various games.  I never heard back from you, so I'm hoping it fixed it for you.  If not, feel free to reopen.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.