In-Game Renderer / Textures / Mipmap Treatment Broken

Godot Version

4.6.2

Issue

Game render is choppy, with stepping and crunchy textures. (Issue in Game Window only - I can see proper treatment in editor)

Things that don’t work

Changing “rendering/textures/canvas_textures/default_texture_filter” to Linear, Nearest, Linear Mipmap, Nearest Mipmap in project settings does nothing (works in editor).

Reimporting images with Mipmaps enabled does nothing (works in editor).

Changing quality levels in “rendering/textures/canvas_textures/anti_aliasing” project settings does nothing as well.

Changing the SubViewportContainer and/or sprite texture filter settings to Linear, Nearest, Mipmap etc does nothing.

Changing project renderer to Forward+, Mobile, Compatibility does nothing.

I ran some visual tests, and my game window render always looks “crunchy” with non-aliased pixels at all scales. The only thing that seems to trigger any kind of anti-aliasing is to scale a sprite x4 in the editor, but stepping in game-mode persists.

Game window defaults to this behavior and nothing changes it:

From left to right : import scale, 2x, x4
First image is game window scaled down, second image is game window at initial size. These captures were taken to window size. Notice that the pixelation (stepping) is consistent at both window sizes.

I’ve looked up old fixes from 2 years ago and tried all that I could find, nothing has worked for me in version 4.6.2.

Which stretch mode are you using in the project settings?

If you are using the viewport stretch mode and the window size is lower than the base viewport size, you’ll get grainy visuals for two reasons:

  • Nearest-neighbor filtering is used.

  • If the downscale factor is greater than 2x, you’d get grainy visuals even with bilinear filtering as the viewport doesn’t make use of a dedicated high-quality downsampling shader (it just relies on hardware bilinear filtering).

If you’re using viewport`, I suggest looking into using the canvas_items stretch mode instead, as it’s more suited to non-pixel art games.