[TRACKING] State of HiDPI on Linux

Hello. I’m a long time Linux (Arch, btw) user. About 5 years ago, I bought a laptop with a HiDPI display. It was a nightmare to get the OS and apps to look decent.

At 1x everything was tiny and at 2x everything was super jumbo huge. Fractional scaling was kind of ok, but I noticed some proportions just didn’t scale up nicely. In addition, I noticed some older apps just didn’t respect the scaling (or partially respected the scaling). Other apps scaled up to the right size, but icons or fonts were fuzzy.

Since then I’ve avoided HiDPI displays on Linux and I’ve been super happy. I’ve been able to focus on actual work, instead of debugging display issues. I don’t care about extra pixels and I’d rather my computer just work.

Now I find myself looking at Framework, with a HiDPI display :frowning_face: . So my question is, what’s the state of HiDPI displays in Linux in general? For example, Gnome? Is it as seamless as a Macbook or does the display still get in the way? What about on the Framework?

Ideally, I’m curious if any Linux veterans (someone who uses Linux full-time for more than 1 year), use a HiDPI display. I think at the beginning new Linux users might find debugging display issues cool and fun, but in the long term I couldn’t be bothered to deal with that.

This is the conversation that spooked me.

7 Likes

So for my purposes / use case, I’ve largely managed to get fractional scaling “working” on the Framework @ 150% because most of the stuff I use is running Electron, and Electron now supports Wayland fractional scaling with 2 flags:

--enable-features=UseOzonePlatform --ozone-platform=wayland

and that works fine for Chrome, VS Code, and several other Electron apps.

Of the native apps I’ve used, it’s been fine - Lutris / Wine or Steam can play games at the proper resolution.

Couple of things don’t work right (Discord doesn’t respect the Ozone flags, eg, so the text is blurry) - and I’ve just been dealing with it.

YMMV though; so far the only customizations I’ve had to do is making some .desktop files to add those flags to Chromium apps, and I’ve not run into anything else that’s had an issue.

6 Likes

I currently have a 3200×1800 13" running Fedora. There are a couple odd issues, but these days it’s mostly okay… at 2x. I also have a 4k monitor which runs at an odd mix of 1x and 2x, but it’s large enough that 1x stuff is usable. (I think the size is part of the problem; the monitor is physically large enough that some stuff things it only needs 1x, despite being theoretically set to 2x. Laptops on their own don’t seem to have that particular issue.)

I’m not sure about fractional scaling. I definitely distrust it, but I’m not sure how much that’s outdated paranoia and how much is still-existing problems. (OTOH, I know enough about how it’s actually implemented that non-integer scaling is clearly a lot harder to get right.)

I find 3200×1800 @2x isn’t perfect; you get less “usable space” than 1920×1080, but it’s serviceable, especially if you’re mostly looking at web pages. Where it really loses out is not being able to handle two documents side-by-side.

That said… I won’t touch a Framework at 2256×1504. That’s basically unusable at anything other than 1.5x. There are 3000×2000 panels at the same physical size that would be a very close match to my existing setup and should run nicely at 2x. Plus, the added text clarity really does make a difference.

…but yes, I’d rather have even a 1920×1280 than 2256×1504, but I don’t know if anyone makes those.

1 Like

I was trying to run popOS at 125% or 150%, but kept running into issues:

  • Screen tearing that made most things pretty unbearable (but fixing the tearing with an xorg.conf option seemed to kill any alternative resolution modes, which broke most fullscreen games)
  • Steam running at incorrect (impossibly tiny) size
    OR
  • Steam games running at the wrong fullscreen resolution (editing the Steam launch shortcut to fix the Steam window’s scaling seemed to mess up the scaling of any games I launched?)

as well as likely a few more I can’t think of at the moment.

In the end, I’ve settled on running at 100% DPI at a reduced resolution of 1920x1280, which resolves all the scaling issues and seems “good enough” for me. It’s not enough to really notice, though I’m sure some might have particular issues running at a non-native resolution.

If anyone wants to add 1920x1280 to their screen resolution options, since it’s not available out of the box with popOS, the instructions at the following link worked for me:

3 Likes

I’m running Solus Budgie and the default 200% is too big with the 100% being too small like your experience, however running xrandr --output eDP-1 --scale '1.25x1.25' after setting the scaling to 200% sets it to a perfect level. Putting it in your ~/.xprofile makes it load upon logging in automatically. If you’re using a Wayland based Desktop like KDE, Gnome, or Sway then fractional scaling is supported easily via the settings menus without having to run a command like with an X11 based Desktop.

Overall my experience has been flawless except for one program, Steam. Steam for some reason will not scale at all, even to 200%. It’s just super small and tiny. I’ve yet to find a fix for it since the HiDPi settings in the Steam settings don’t do anything even after a full reboot. Other than Steam being problematic, I’ve had no other issues.

Edit: To add more information about Wayland and X11.

Wayland is a modern replacement for X11 which is much more minimal but gives much more control to the Desktop Environment/Window Manager which means the Desktop Environments or Window Managers that use it tend to run better and usually have more features out of the box like fractional scaling. Desktop Environments that use Wayland include KDE and Gnome. X11 is the older standard which is much more restrictive since it assumes more control over display and rendering and does a lot more than Wayland which limits what Desktop Environments/Window Managers can do which is why a lot of them don’t have fractional scaling easily available and some other features like seamless eGPU support like Wayland.

2 Likes

What’s the image quality like? Using this approach relies on the display doing its own hardware scaling, and since 1920x1280 isn’t an integer multiple of the native display resolution, I’d think it would be similar to fractional scaling in X11, which I’ve found produces a blurry result.

Native Wayland apps, by contrast, look better because, if I recall, they render at a high resolution and then scale down to the fractional resolution.

1 Like

It’s not perfect, I’ll share a couple photos I’ve taken (so please ignore the additional moiré artifacts when zoomed out) and there’s certainly some blurriness going on, but at the same time at my normal viewing distance I’m absolutely not noticing it.

I haven’t really tried wayland because it seemed less well supported on popOS and I was trying to avoid any further app headaches, which made 100% dpi scaling seem very attractive in comparison.


1 Like

Wow. It’s not just Linux that has to deal with scaling issues. One of the Framework investors himself has made a video about scaling issues on Windows.

1 Like

Tbf that’s clearly an old video, the no beard gives it away haha

4 Likes

ChromeOS does scaling very well but unfortunately Cloudready does not support PIN to login so that killed my dream of a Framework chromebook. Currently running Ubuntu 20 at 150% and I’ve come to peace with it. Years ago I would tinker with everything to make it perfect but at 150% it’s a good trade off between being blurry and usable.

3 Likes

True, good point. I haven’t used Windows since Windows 98. What is HiDPI like under Windows? I assumed it was as flawless as with a Macbook, but now I’m not sure.

at 150% it’s a good trade off between being blurry and usable.

If Framework additionally offered a normal DPI display, we wouldn’t even be having this conversation about workarounds and accepting blurry graphics. Everything would Just Work :tm:. cc @nrp

The point that some people have tried to make is that HiDPI isn’t even necessarily the enemy here rather fractional scaling is. 2256 x 1504 is too low of a resolution for 2x scaling and too high of a resolution for 1x scaling that’s just a fact. I’m sure that there is a reason why they went with this resolution but it’s definitely not ideal. Bear in mind that in 2020 because of COVID it was really hard to source screens for a while so that could have swayed their decision one way or the other. If you want a LoDPI display for better battery life then sure hopefully Framework will source a 1920x1280 screen for you but if you want a HiDPI display that just works out of the box then instead hope that they source a 3000x2000 screen that will look good at a 2x scale.

All of that said, Gnome running on Wayland at 1.5 x scaling on the Framework as is isn’t so bad that you notice anything. It’s always interesting to me to see what the different dealbreakers are for people. For me any blur caused by fractional scaling which I can’t even notice when I’m using the Framework didn’t come close to tipping the scales on whether I should get this laptop or not.

6 Likes

^ Yeah - I don’t ever want to go back to LoDPI (though if some people prefer that it’d be cool to have the option). I love the screen on the Framework just wish the software handled it better (not a Framework problem).

3 Likes

I’ve used a 1440p 27” display and found no issues except in the HDR experience which is godawful

I’m too lazy to do the math or look up the PPI compared to the Framework-I think the framework laptop is more dense given it’s high res and smaller size

The windows laptop I use is strictly 1080p and fine as well

1 Like

You might want to check out the Brunch project.

3 Likes

Thanks! I’ll try that next

Edit- unfortunately brunch + chromeos 93 works this same way - it requires a password not a pin to login.

1 Like

Scaling is one of these things that, like sleep/hibernate (Linux deep sleep), ought to be a solved problem by now.

2 Likes

Fractional scaling isn’t even a solved problem on MacOS or Windows as some people have said in this thread. Trying to cut a pixel in half or in quarters just doesn’t work it is a quanta (indivisible). And any solution to sort of round out the fuzziness using anti-aliasing is going to be imperfect and cause artifacts to show up.

I am happy with the fractional scaling under X11 on Plasma, Wayland on Gnome, and the xrandr trick in Pantheon on Elementary they have all looked good enough. But none of them are perfect and it’s unrealistic to think they ever will be.

6 Likes

Under X11, the solution given by cassidyjames from Elementary OS works surprisingly well. I haven’t encountered any screen tearing at all, which feels a little strange for X11, albeit not knowing if my screen refresh rate has been affected.

An issue with implementing this was that placing the script in /etc/profile.d/ wouldn’t work, as the script would be executed before loading the desktop, thus breaking. A workaround would be to create a .desktop entry in /etc/xdg/autostart/ that executes the script as if it were an application.

1 Like