I’m using Arch Linux with Sway on Framework 13 (AMD Ryzen 7640U) with a 2880x1920 screen. For many reasons, I’d like to use a lower resolution in order to avoid scaling.
The problem is that any non-native resolution will make the screen look blurry, probably because a linear filter is applied instead of nearest neighbor at some level. Even 1440x960 has this issue, which is exactly half of the native resolution. I’ve done some research and found no workaround.
If I take a screenshot and zoom in, I can see that the screenshot is crisp, different from what’s shown on screen.
It would be really really lovely if I could use a lower resolution on my Framework 13 without it being blurry. Any ideas / advice?
Setting a different resolution on an integrated panel is still scaling just dumber. Not actually sure if you can force integer scaling (what you probably want with your half resolution crisp screenshot).
For games or speciffic applications gamescope can do integer scaling if the rest of the screen is full resolution but sway can only do regular scaling where stuff gets rendered at full resolution but bigger.
All display panels have this issue. Most modern OS do a pretty good job of scaling fonts and menus, it is usually games that do not play well due to rasterization.
Not actually sure if you can force integer scaling (what you probably want with your half resolution crisp screenshot).
Yeah integer scaling would be what I want.
All display panels have this issue.
That’s kind of a pity.
The main reason I’d like to use a low resolution is that with HiDPI, I will have to use scaling as everything would otherwise become extremely small. However, scaling has caused me too much headache. There were so many things I had to spend time fixing and tweaking because of scaling issues, and it got especially bad when using a secondary monitor. For some I couldn’t even figure out a workaround.
With scaling set to 1, all of those issues won’t occur from the first place. I also don’t have to worry about running into more of them in the future.
I do love how sharp and smooth my computer looks when using HiDPI, but in practice it has given me more frustration than benefit. I’m willing to trade HiDPI for not having to deal with scaling-related problems.
Anyway, the blurriness is not a big deal breaker. It’s not that bad. I’ll probably live with it until I find a better solution.
Theoretically, a 1080p screen for FW13 would be great for me, like a display with a native resolution around 1620x1080 or 1920x1280. I’m not sure whether it would make sense for Framework to offer such a panel, since it might be a fairly niche demand. Though I do think it would be quite reasonable. I would definitely like it, and I believe as well as all the people who want a lower resolution for similar or other reasons.
That said, the best solution would still be being able to use non-native resolutions without the blurriness, since that would provide the most flexibility.
Even with whole numbers? Thought that worked quite well for ages now, the fractional scaling was where all the pain was and that got better too.
Either way have you tried 2x scaling with output <output_name> scale_filter nearest this might actually do what you want on the compositor level.
I know the intel gpu drivers on windows used to be able to do integer scaling on the driver level on windows at some point and as it looks also support Property: SCALING_FILTER - DRM database which appears to be a similar thing on the linux side but amdgpu seems to not have that.
Different tastes I suppose, I feel pretty cramped on 1080p.
The resolution of the original 13 panel is just at the upper end where I am comfortable at 1x so the higher res new ones might be a step too far but 2x scaling would be way too cramped so I’d have to pray fractional scaling got good enough, maybe it’s still good enough and it’ get more realestate too XD.
Outside of whole fractions (where you can use integer scaling) that isn’t really physically possible with matrix displays, crts used to be kinda able to do that as the pixels were just where you aimed the beam at but even those had limitations.
Either way have you tried 2x scaling with output <output_name> scale_filter nearest
This doesn’t do what I want. The point is to keep scaling at 1x. This uses 2x scaling but it’s still the same resolution, just with nearest filter.
Outside of whole fractions (where you can use integer scaling) that isn’t really physically possible with matrix displays, crts used to be kinda able to do that as the pixels were just where you aimed the beam at but even those had limitations.
Oh yeah that’s true. Still it would be cool if the display could do integer scaling for whole fractions.
It should cause it to use compositor side scaling (rendering the stuff at half resolution then scaling up in the compositor) instead of normal application side scaling (letting the applications handling the scaling themselves) which is probably the source of most of your scaling issues. Given you have not really elaborated on what problems you actually had it is hard to tell how to solve them.
Laptop displays don’t have built in scalers, would be nice if amdgpu implemented the SCALING_FILTER property though.
It should cause it to use compositor side scaling (rendering the stuff at half resolution then scaling up in the compositor) instead of normal application side scaling (letting the applications handling the scaling themselves)
Hmm it looks like it’s still doing application side scaling for me. I tried
which is probably the source of most of your scaling issues
That’s right.
Some problems I remember seeing that were caused by scaling:
Steam notification popup was not scaled properly .
If I move my cursor to the top part of Steam it would become blurry.
I had to set an environment variable in order for some Qt programs to scale properly (e.g. MuseScore).
Wine programs were not scaled properly. This could be mostly fixed by changing DPI in winecfg, but there were still problems (e.g. Windows VST plugins).
Some crucial problems my friend experienced:
Scaling caused blurry text on his secondary monitor.
AIMP became extremely laggy with 2x scaling.
In Renoise, the UI zoom was completely off and text was very blurry due to scaling.
Some times it was just pet peeves here and there, other times things became unusable. When I was using HiDPI with scaling, I managed to fix quite a lot of these issues, but some remained unsolved. And either way they’ve given me headache because I had to spend extra time on looking for fixes instead of just using the computer.
The point here isn’t even to fix these specific bugs. It’s the fact that scaling brings friction. If I simply don’t bother with scaling, I would never run into these problems in the first place.
Well I guess that approach is dead too then. On further research looks the filter only applies to legacy applications that don’t support application side scaling at all. The problem is the ones that claim to support it but screw it up so that won’t help here. Also doesn’t look like there is a way to force compositor side scaling.
Fair enough but it looks like as it is you’ll have to either take blurry driver side scaling or the pitfalls of application side dpi scaling.
Really sucks that the otherwise pretty glorious amdgpu driver has not implemented DRM SCALING_FILTER, on an intel igpu that would do pretty much exactly what you want.
Fair enough but it looks like as it is you’ll have to either take blurry driver side scaling or the pitfalls of application side dpi scaling.
Yeah that’s my conclusion too. Both sides have drawbacks but I guess I’ll take the blurry driver side scaling. It’s not ideal, but not horrible. Also I always use a secondary monitor connected to the laptop if I’m at home, which makes it more tolerable.