1

I have a high-DPI display (13" 3200x1800) and figured that if I set it at 1600x900 (exactly 1/4 native - 1/2 width and 1/2 height) then each pixel outputted should be represented by a 2x2 block of actual pixels on the display, crisp and clear as if it was natively a 1600x900 display.

When I try it though, the image is very blurry. So I have two questions. Firstly, is it the display or the GPU responsible for adding this blur (or impossible to say)? And secondly, is there anything that can be done to prevent it?

I'm also looking at buying a high-DPI external display (24" 4K) so the question could also apply to that (attached to either a GTX 970 or Intel Iris 540).

  • It's kind of like this (unanswered) question - superuser.com/questions/950995/… - I want to avoid the linear filtering and get nearest filtering. – Sam Mar 7 '18 at 8:54
  • 1
    Why not set display scaling to 200%? – iTechieGamer Mar 8 '18 at 9:58
  • 1
    You're making an assumption there about what I'm trying to achieve (because I failed to state what I'm trying to achieve in order to keep the question short and sweet). Briefly though I'm running mixed-DPI displays on Linux so scaling isn't going to work (yet - it'll get there eventually). Also, re Windows, consider gaming and 4K performance demands. – Sam Mar 8 '18 at 10:02
3

If it was that easy then there wouldn't be any need for high resolution input. You're interpolating data that isn't there and that causes the blurriness. It's the same as taking a low resolution image and increasing the resolution.

If you want your user interface and text to be larger you need to change the scaling setting rather than lowering the input resolution of the display. The scaling setting will render the interface and text differently so that more pixels are used to render the same menu/button/text/...

Unfortunately, scaling implementations are not always perfect and not all software will respond well to it.

  • "It's the same as taking a low resolution image and increasing the resolution." - I can do that in any image editor. If I screenshot an unscaled dialog box and then increase it to 200%, it's crisp, clear and correct on the high-DPI display. So why not the entire display? – Sam Mar 7 '18 at 10:23
  • 1
    Most image editors apply some kind of upscaling algorithm that intelligently tries to interpolate the missing pixels. Your graphics card output does not do this. TVs tend to do something similar but a monitor usually does not as you're supposed to use it at the native resolution. – AdmiralFreebee Mar 7 '18 at 11:01
  • The point is that the monitor DOES apply some sort of linear / cubic filter and I don't want it. Using GIMP, upscaling an image to 200% and choosing 'none' for interpolation option (which gives nearest neighbor far as I understand it) achieves the desired effect. – Sam Mar 7 '18 at 11:18
0

Partial answer then from an excellent article / progress page:

http://tanalin.com/en/articles/lossless-scaling/

(I know the page may go down etc but there's too much info to summarise it all here).

Main point is that this partially works for nVIDIA GPUs running Linux. Desktop should respond flawlessly but games are a mixed bag. For 1080p on a 4K display:

nvidia-settings -a CurrentMetaMode="DP-1: 3840x2160_60 {ViewPortIn=1920x1080, ViewPortOut=3840x2160, ResamplingMethod=Nearest }"

To confirm which display you'd like it applied to (probably DP1):

xrandr

One day nVIDIA might bring this to Windows too (there's already a Lanczos / Sinc filtering option hidden away and accessible via nVIDIA Inspector - very slightly less offensive than bilinear / bicubic but nowhere near ideal).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.