- cross-posted to:
- linux@programming.dev
- technews@radiation.party
- cross-posted to:
- linux@programming.dev
- technews@radiation.party
In response to Wayland Breaks Your Bad Software
I say that the technical merits are irrelevant because I don’t believe that they’re a major factor any more in most people moving or not moving to Wayland.
With only a slight amount of generalization, none of these people will be moved by Wayland’s technical merits. The energetic people who could be persuaded by technical merits to go through switching desktop environments or in some cases replacing hardware (or accepting limited features) have mostly moved to Wayland already. The people who remain on X are there either because they don’t want to rebuild their desktop environment, they don’t want to do without features and performance they currently have, or their Linux distribution doesn’t think their desktop should switch to Wayland yet.
Outside of your fantasies high DPI works fine. Modern QT apps seem to pick it up fairly automatically now and GTK does indeed require a variable which could trivially be set for the user.
Your desktop relies on a wide variety of env variables to function correctly which doesn’t bother you because they are set for you. This has literally worked fine for me for years. I have no idea what you think you are talking about. Wayland doesn’t work AT ALL for me out of the box without ensuring some variables are set because my distro doesn’t do that for me this doesn’t mean Wayland is broken.
They pick up “automatically” because of how your DE sets up the relevant envvars for you, there is nothing in the protocol that actually tells the applications “hey, this monitor needs X% DPI scaling!”.
The side effect of this deficiency in the protocol is very obvious, you can’t mix DPIs, because the envvars or Xft.dpi are global and not per-application. Have you seen a blurry LoDPI X11 window sitting right beside a HiDPI X11 window? Or an X11 window changing its DPI dynamically as you move it across monitors with different DPIs?
The fact that SDL2 still doesn’t support HiDPI on X11 when it already does on Macs, Windows, and Linux Wayland should tell you something.
Don’t throw the “it works for me” excuse on me. Because I can throw it back on you too: “Wayland works on my machine”. X11 is utterly broken, just admit it. You are welcome to develop another X11 if you want.
Nothing is set automatically I run a window manager and it starts what I tell it to start. I observed that at present fewer env variables are now required to obtain proper scaling. I did not personally dig into the reasoning for same because frankly its an implementation detail. I just noted that qt apps like dolphin and calibre are scaled without benefit of configuration while GTK apps like Firefox don’t work without GDK_SCALE set.
X actually exposes both the resolution and physical size of displays. This gives you the DPI if you happen to have mastered basic math. I’ve no idea if this is in fact used but your statement NOTHING provides that is trivially disprovable by runing xrandr --verbose. It is entirely possible that its picking up on the globally set DPI instead which in this instance would yield the exact same result because and wait for it.
You don’t in fact actually even need apps to be aware of different DPI or dynamically adjust you may scale everything up to the exact same DPI and let X scale it down to the physical resolution. This doesn’t result in a blurry screen. The 1080p screen while not as pretty as the higher res screens looks neither better nor worse than it looks without scaling.
Why would I need to develop another X11 I believe I shall go on using this one which already supported high and mixed DPI just fine when Wayland was a steaming pile of shit nobody in their right mind would use. It probably actually supported it when you yourself were in elementary school.
Fun fact: zero envvars are needed for HiDPI support on Wayland.
You do possibly need envvars to enable Wayland support though, but the latest releases of Qt6, GTK4, SDL3 etc. are enabling Wayland by default these days so in the future everything will work out of the box. By default.
Did I say XRandR and mixed DPI in my previous comments? Yeah, I think I did. What the Qt applications currently do is choosing the max DPI and sticking with it. There are some nasty side effects, as I will explain below.
Don’t forget the side effect: GPU demands and/or CPU demands (depending on the renderer) increase… a lot, nearly 2x in some cases. This might not be acceptable in applications like laptops - have you used projectors in college?
Anecdotally speaking, I gained 1 to 2 hours of battery life just by ditching X11, it’s impressive considering my battery life was like 4 to 5 hours back then. Now it’s actually competitive with Windows which usually gets 6 to 7 hours of battery life.
Furthermore, scaling up and down in multiple passes, instead of letting the clients doing it in “one go” and have the compositor scan it directly onto your screen, leads to problems in font rendering because of some antialiasing shenanigans in addition to the power consumption increase. It’s the very reason why Wayland added a fractional_scaling protocol.
Apparently the “nobody” includes GTK, Qt, SDL, and all the mainstream DEs (Xfce and Cinnamon included - even they are preparing to add Wayland support). 90% of the programs I use actually support Wayland pretty well. Good job lad, you managed to invalidate your own argument.
Besides that, you still haven’t properly answered the question of mixed DPI: have you seen a properly-scaled-up LoDPI X11 application? It’s a big problem for XWayland developers. See it here. And yes… those developers are (were?) X11 developers. I think they know how unworkable X11 is, more than you do.
It doesn’t require a meaningful or measurable difference in CPU/GPU to scale my third monitor. That is to say in practical effect actual usage of real apps so dwarfs any overhead that it is immeasurable statistical noise. In all cases nearly all of the CPU power is going to the multitude of applications not drawing more pixels.
The concern about battery life is also probably equally pointless. People are normally worrying about scaling multiple monitors in places where they have another exciting innovation available… the power cord. If you are kicking it with portable monitors at the coffee shop you are infinitely more worried about powering the actual display more so than GPU power required to scale it. Also some of us have actual desktops.
There just aren’t. It’s not blurry. There aren’t artifacts. It doesn’t take a meaningful amount of resources. I set literally one env variable and it works without issue. In order for you to feel you are justified you absolutely NEED this to be a hacky broken configuration with disadvantages. It’s not its a perfectly trivial configuration and Wayland basically offers nothing over it save for running in place to get back to the same spot. You complain about the need to set an env var but to switch to wayland would be a substantial amount of effort and you can’t articulate one actual benefit just fictional deficits I can refute by turning my head slightly.
Your responses make me think you aren’t actually listening for instance
Please attend more carefully. Scaling and High DPI was a thing on X back when Wayland didn’t work at all. xrandr supported --scale back in 2001 and high DPI support was a thing in 2012. Wayland development started in 2008 and in 2018 was still a unusable buggy pile of shit. Those of us who aren’t in junior high school needed things like High DPI and scaling back when Wayland wasn’t remotely usable and now that it is starting to get semi usable I for one see nothing but hassle.
I don’t have a bunch of screen tearing, I don’t have bad battery life, I have working high DPI, I have mixed DPI I don’t have a blurry mess. These aren’t actual disadvantages this is just you failing to attend to features that already exist.
Imagine if at the advent of automatic transmissions you had 500 assholes on car forums claiming that manual transmission cars can’t drive over 50MPH/80KPH and break down constantly instead of touting actual advantages. It’s obnoxious to those of us who discovered Linux 20 years ago rather than last week.
Let me summarize this with your own statement, because you certainly just went out and disregarded all things I said:
Yeah, you are now just outright ignoring people’s opinion. 2 hours of battery life - statistical noise, pointless. Laptops - who neeeeeeeeds that, we have desktops!! Lack of fractional scaling which people literally listed as a “disadvantage” of Wayland before it got the protocol - yeah, I guess X11 is magic and somehow things are not blurry on X11 which has the same problem when XRandR is used.
Do I need to quote more?
Also, regarding this:
Maybe you should take note of when Wayland development had actually started picking up. 2008 was when the idea came up. 2012 was when the concrete foundation started being laid.
Not to mention that it was 2021 when Fedora and Ubuntu made it default. Your experience in 2018 is not representative of the Wayland ecosystem in 2021 at all, never mind that it’s now 2023. The 3 years between 2018-2021 saw various applications either implementing their first support, or maturing their support of Wayland. Maybe you should try again before asserting a bunch of opinions which are outdated.
Wayland was effectively rebuilding the Linux graphics stack from the ground up. (No, it’s not rebuilding the stack for the sake of it. The rebuilding actually started in X.org, but people were severely burned out in the end. Hence Wayland. X.org still contains an atomic KMS implementation, it’s just disabled by default.)
4 years of designing and 8 years of implementation across the entire ecosystem is impressive, not obnoxious.
Something makes me think that you aren’t actually using it 20 years ago.
Maybe it’s just my memory of the modelines failing me. Hmmm… did I just hallucinate the XFree86 server taking down my system?
Oh noes, I am getting old. Damn.
You ably demonstrate your own inability to listen. The monitor on my right hand side right here as I type this isn’t blurry there is no amount of proving that it MUST be blurry that is more persuasive than the fact that as I type this I’m looking at it.
Furthermore I didn’t say that the existence of desktops obviated the need to worry about the impact of resolution/scaling on battery life. I said that the impacts on battery life were both minimal and meaningless because mixed DPI concerns by definition concerns exclusively desktops and laptops which are plugged into external monitors at which time logically your computer is also plugged into power. In fact the overwhelming configuration for those which use external monitors is a dock which delivers both connectivity to peripherals and powers. If you are using a desktop OR a plugged in laptop the benefits of scaling more efficiently is zero.
I started using Linux with the release of the very first release of Fedora then denoted Fedora “Core” 1. I’m not sure how you hallucinated that Wayland got 4 years of design and 8 years of implementation. First off by the end of the month it will be 15 years old so you fail first at the most basic of math. Next I’m guessing you want to pretend it got four year of design to make the second number look less egregious.
With graphics programming relatively in its infancy X11 didn’t require 15 years to become usable and Apple took how many years to produce their stack was it even one? Working with incredibly powerful hardware, with a wide variety of approaches well understood and documented 15 years is downright embarrassing. Much as I enjoy Linux the ecosystem is kind of a joke.
Or was it you?
2012-2021, or to clarify “Late 2012 to early-mid 2021” seems to be 8-point-something years to me. I dunno, did mathematics change recently or something?
I hope you do understand that graphics weren’t as complicated back then. Compositing of windows was not an idea (at least, not a widely spread one) in the 90s. Nor was sandboxing an idea back then. Or multidisplay (we hacked it onto X11 later through XRandR). Or HDR nowadays. Or HiDPI. Or touch input and gestures. We software rendered everything too, so DRI and friends weren’t thought of.
In a way… you are actually insulting the kernel developers.
It’s not my fault if their work is of poor quality. Here is how people actually experience Wayland out of the box.
https://www.reddit.com/r/Fedora/comments/xdvy7z/multimonitor_scaling_in_wayland_is_totally_broken/ Oh I know its now 11 months old and someone even suggested a magic incantation you can insert into the Linux version of the Windows Registry that might fix some of the problems but this is 2022. In 2015 Wayland proponents were already promoting it as ready for prime time.
Why on earth would I develop “another X11” instead of using the one that still works perfectly fine?
So you simply thought the deficiencies I listed before are not problematic. Got it, have a nice day.