drfrag666 / gzdoom

GZDoom adds an OpenGL renderer to the ZDoom source port.
http://gzdoom.drdteam.org
GNU General Public License v3.0
74 stars 17 forks source link

[Feature Request] Screen bilinear scaling in software mode #22

Closed vanfanel closed 1 year ago

vanfanel commented 3 years ago

Hi there,

I see there is the "Rendering interpolation" option, which seems to be used by GL/Vulkan to apply a bilinear filtering on the screen.

However, the software renderer looks TOO grainy on today's displays. So let's say my display is running at 720p and LZDoom runs in 320x200 internal mode: that's great for speed, but doesn't look that good. However, setting SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); in src/common/platform/posix/sdl/sdlglvideo.cpp makes the game in software mode look much, much better when run with the same resolution on the same display.

So, that's what I do for my own LZDoom builds. However, "Rendering interpolation" could be honored by the Software renderer too, by simply setting SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); before the SDL_CreateRenderer() call, as I said.

drfrag666 commented 3 years ago

The rendering interpolation option has nothing to do with filtering. The software renderer looks pixelated as it should, i know some fonts look bad at low resolutions but i don't want it to look blurry. I remember the linear filter was enabled unconditionally on softpoly and looked far worse,

madame-rachelle commented 3 years ago

This is a Linux problem, not just a Raspberry Pi problem. And it's present in GZDoom as well. It's supposed to respect the setting of vid_scale_linear, but that was never implemented in the Linux softpoly backend.