At this point I don't know who it is for, but it's not for users.
But, at the same time. A design that requires everyone to implement their own protocols and everyone to refix the same bugs in their own compositor is inherintly bad.
I have been using Wayland as my daily driver. Some compositors lacked SHM support in their screen sharing, others have other issues. We only recently got proper text input support, and it took forever to fix in chrome and electron(it's been fixed for a few releases, but you'll still come across older electron software). How did they manage to make it so the cursor movement is dependent on the scaling mode in a way that client rendering library's need to be aware of it otherwise the cursor ends up in the wrong location by the way?.
In X, if the WM crashes, X is still running, and you can just restart the WM. In Wayland, if you hit a bug it takes everything down with it.
The first release was 14 years ago, we're still fixing screen sharing.
I just learned that despite all the boasting of fractional scaling support in Wayland, one of the base protocols, wl_output actually returns the same scaling mode for two screens even if they have a different scaling setting.
One thing I also never got is why the displays have to have absolute coordinates when you place them on a global coordinate system that is dependent on the scaling mode of the screen.
Also, KDE is the only WM that has managed to properly implement scaled Xwayland windows.
Consider that if every DE wrote their own Xorg implementation the story would be the same.
A key question is why everyone is writing their own compositor, this is not about the protocol design, it's about the state of collaboration.
I spent some time in the last week fixing lowdpi font rendering in cosmic, enabling me to switch to it. I then discovered that cosmic-comp's VRR had a terrible feedback path causing conformant applications to stutter badly, so I have large patch stack rewiring full screen feedback, tranche compatibility, fence timing and so on (it's fucking buttery now though, which is nice). That then showed up some input processing bugs becoming visible via playing videos in firefox, leading further to me discovering that cross-plane locking was causing frame drops too. Now I've got a giant stack of shit I need to cleanup and upstream - but the end result (along with the freetype render patches I got into Firefox a while back) is a better DE than I've had on Linux in decades. Maybe if upstreaming goes well I'll do MPO for an encore.
> In X, if the WM crashes, X is still running, and you can just restart the WM. In Wayland, if you hit a bug it takes everything down with it.
See above, the WM did not need to embed the compositor. That's not a protocol requirement, it's and implementer choice. I actually really wish it didn't. Of all the aforementioned patches only two are in Smithay. As I was actually fixing compositing for the workflow I just had to suffer through I would have had to restart pretty much the whole session anyway - though in fact the later stages of my workflow I was only directly killing cosmic-comp and cosmic-session was automatically restarting it all. No really good way to recover the surfaces though, so apps still need to restart.
This is not unlike the _another_ bug stream I tracked down this evening, where cosmic-applets would fail to display tray icons on both displays correctly - that turned out to be a bug where one icon provider was unresponsive to part of the protocol, coupled with a synchronous dispatch from the event handle into that blocking return call. Perhaps more interestingly though that manifest during diagnosis something I've seen a lot in other DE chains where tray icons for auto-started electron apps were highly sketchy - well a common electron wrapper gives up entirely on the first whiff of an error with the dbus interface and doesn't retry.
Years ago I gave up on Linux DE's because reconfiguring xft, gnome, etc was too much of a time sink. How far I've come, now I'm back :'(
Dude, because that is how wayland is designed. X is a display server. Wayland is a protocol with implementation. If you want tiling, you have to roll your own, with ALL the protocols that are needed. It's up to clients to render. It was one of the fundamental critiques people had of the whole thing. 15 years in, and it's still the same. Need Vulkan rendering? See you in two years. And then every single WM has to implement it. Not even the basic premise of fractional scaling is solved properly, except in the one use case which is single monitor usage.
It's not about collaboration. wlroots was an attempt at having a standardized layer, and many protocols made it back into upstream actually. But even there, no two wlroots compositors are the same. We used to call these WMs, because the compositor layer could be separate on X. Anyway, bugs persist for years, some parts are never fixed, lots of basic features that existed in X for decades needed people to implement in their own compositor report back and then create a standardized protocol. So KDE has their own, gnome has their own, Hyprland recently rolled their own, etc.
And then there is of course gnome, which seems to want to break random basic functionality for no good reason(hello tray icons). Gnome of course didn't use to be like that.
But a plug, the absolute best wlroots based compositor I have used is mangowm[1][2]. You report a bug in the morning and in the afternoon dreammaomao has a solution for it. Of course I'm exaggerating a bit, but I think I've used pretty much every major Wayland compositor extensively so far.
All on X, though. I appreciate the principles behind Wayland, but sadly not the implementation.
Isn't the issue just the zoom desktop app?
Yup pretty much. Desktop sharing on Chromium based browsers is fine (probably others but I can't vouch for them), it's fine on OBS Studio, portals work, etc...
But there's a contingent of Linux users that thinks anything new = bad so they'll find the most dogshit app that doesn't work and trot it out as proof that the new thing is bad.
You're way behind.
Wayland is fine. Wayland + VRR is even better.
XWayland otoh is quite bad.
https://marco-nett.de/blog/measuring-input-latency-on-linux-...
On AMD hardware, VRR works fine on xorg and has for quite a long while now... so long as you have either a single active monitor (or maybe the restriction is just "don't have any active non-VRR monitors"). [0] I don't have Intel or Nvidia hardware so I can't test, but the Arch wiki says that they both work fine with VRR. [1]
The only Wayland feature that I've heard be commonly touted that xorg lacks is HDR support.
[0] I don't know which is it because I haven't bothered to go out and buy a second VRR-capable monitor.
[1] <https://wiki.archlinux.org/index.php?title=Variable_refresh_...>
Are you doing that with xorg or Wayland? If with xorg, have you verified that VRR is working? [0] If you've verified it, how'd you make it work? It'd be quite nice to have both multi-monitor and VRR... unless I have to make some terrible tradeoff to make it happen.
[0] My go-to is using the "scrolling bars" mode of this LÖVE program [1] to make judder at update rates that aren't an -er- even fraction of the screen's refresh rate pretty easy to spot... but if you have something that works for you, that's good.
- Pipewire or Pulseaudio has nothing to do with XWayland, let alone Wayland (Pulseaudio is somewhat legacy and may not be maintained as well as it used to be)
- Zoom (the last time I checked, a while ago) wasn't really well implemented on Linux (came before xdg-desktop-portal, which has standardised screen sharing across DEs and only really prioritised the GNOME specific extensions.
- The engineering effort to properly support screen sharing on Linux is a _bit_ more complicated than other platforms as we have many DEs
- Browser based screen sharing is generally the best option on Linux imho
I can only use X11 with KDE Plasma because, for some unfathomable reason, if i launch `startplasma-wayland` pressing ANY key on my keyboard causes it to crash.
Like. How.
If I were to switch to Wayland and have to go back to the webapp for Zoom, that would be annoying.
Ah yeah, that's because codecs are (still) a mess on Linux. In Firefox, navigate to about:config, then make sure that the following are set:
media.ffmpeg.disable-software-fallback=true
media.ffmpeg.vaapi.enabled=true
media.gmp.decoder.enabled=false
media.gpu-process-decoder=true
media.gpu-process-encoder=true
media.hardware-video-decoding.force-enabled=true
media.hardware-video-encoding.force-enabled=true
media.webrtc.hw.h264.enabled=true
media.webrtc.software_encoder.fallback=false
(I'm not sure if all of those are necessary, but that's what I'm currently using.)Then in Linux, make sure that you have the full versions of all the codecs installed; in Fedora, you need to install "mesa-va-drivers-freeworld" and "ffmpeg" from rpmfusion (and uninstall "mesa-va-drivers" and "ffmpeg-free" from the regular repos); for other distros, the steps should be similar.
But after all that, my Firefox uses only 20% of a single CPU to run Zoom, so my laptop is cool and the fan stays off.
(I agree that it's really annoying that all of these steps are needed just to make video work well, but they're orthogonal to Wayland, and would be needed with X11 in the browser too.)
> This isn't the case for Google Meet on Firefox, so it's something about Zoom's webapp.
Google Meet probably uses VP9 or AV1 (since both are developed by Google), and those are both patent-free so should have no issues on Linux. Whereas Microsoft Teams and Zoom only use h264, which for patent reasons is limited to software-only by default [0]. I'm guessing that Zoom Linux application likely embeds the relevant codecs, which would be why it works there without any extra steps.
They're a mess everywhere for legal reasons. The solution is what Chrome and many other apps do: just ship codecs with the app.
But AV1 is starting to become fairly popular, and most of the h264 patents have expired, so this should all hopefully be a non-issue in a few years.
Not if you install Chrome, Brave, Vivaldi, etc... like most users...
Not annotating when you yourself are screen sharing, but when someone else is screen sharing you can draw on their screen(aka annotating)?
https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d...
what's more - this seems like yet another RedHat/IBM project which destroys variety and flexibility in favor of their problematic choices, often with a degradation of functionality. systemd, Wayland, GNOME - and of course nothing would run on BSDes, heavens forbid.
With X11 seeing renewed, independent work via https://xlibre.net - why not embrace _that_ rather than go down the crooked Wayland path?
Metux himself also has some "fascinating" takes as archived from other projects such as the LKML [1] and Devuan [2] mailing lists
[1] https://gitlab.freedesktop.org/xorg/xserver/-/work_items/179...
[2] https://lkml.org/lkml/2021/6/10/957
[3] https://web.archive.org/web/20190404153507/https://lists.dyn...
While I'm over here having to move to Xorg as Wayland breaks my applications about once every two months. Breaking changes, poor code quality, LLMs, or maybe it's just that the devs of Wayland were more motivated by their own personal needs/wants then the Xorg users.
I can never get back the hours I lost troubleshooting graphics drivers only to realize that Wayland claimed it should work, but doesn't. I'll take whatever Metux gives me if it works, or from anyone else for that matter.
I hope his xlibre project is successful, but my opinion of the project is certainly tainted by my past interactions with him.
As I said to the other guy I just hope this is better than what we have and I'll take about anything at this rate. I don't care to deal with people on that level anymore, which is why I stopped developing OSS over 10 years ago; everyone has their opinions about the code, if they can't solve that they fight over politics to "justify" forking and the downward spiral ever goes downward.
Be better
What do you get from it? Is he your enemy? Seems like you are trying to destroy him using this comment as attack vector. And this comment is well prepared and sourced and easily repeatable, so I presume you use multiple attack vectors like this.
Just an observation. And as an observer, this is annoying to see.
That's probably the worst argument that you could make against Wayland: there has only ever been a single X11 server in common use on the Linux desktop (first XFree86, now X.Org), but there are tons of independent Wayland "server" implementations (Weston, Mutter, KWin, wlroots, etc.) [0]. Lots of these are written in completely different languages and implement different extensions from each other, so there's way more variety and flexibility with Wayland than with X11.
The more common criticism that I've heard is that Wayland's variety and flexibility is actually bad, because it makes it harder to add extensions (since you need to implement it in multiple different projects, and not just the single X.Org codebase), and it means that applications potentially have to test against multiple implementations. (I don't necessarily agree with this criticism myself, but it's still a valid complaint.)
> and of course nothing would run on BSDes
FreeBSD [1] and OpenBSD [2] both have Wayland support.
[0]: https://en.wikipedia.org/wiki/List_of_display_servers#Waylan...
[1]: https://docs.freebsd.org/en/books/handbook/wayland/
[2]: https://xenocara.org/Wayland_on_OpenBSD.html#running-wayland
Yeh... we should totally keep to X11.... especially when toolkits start to drop support.
HTML5 was not shitty because internet explorer was a shitty browser.
Yep. Sucks. It's the only thing I miss about gaming on Windows. Hopefully xlibre will be adding that in.
> ...VRR, Mixed refresh rate/DPI displays, Zero-copy video acceleration...
I know that the first two work fine on xorg [0]. It's not entirely clear what you're talking about with the third, but I know that xorg supports compositor bypass for windows so that programs can interact with the graphics card without the windowing system getting in the way. Like, I think this is a thing people were talking about working on back when Compiz and its wobbly windows was new and exciting.
If that isn't what you mean by your third thing, perhaps you'd be interested in specifying what video acceleration mechanism xorg doesn't have?
> ...support for tiled GPUs.
Doesn't that only matter for Apple Silicon(TM) machines, and maybe some ARM machines with integrated graphics? If folks want that, it's "just" a matter of writing the drivers to make it happen and getting them into an xorg fork. Can you show me a feature or features of xorg that makes it impossible.. other than FDO's tactical neglect?
EDIT: Actually, I dimly recall some old hardware that I think was supported by DRM that did tiled rendering. Maybe it was some PowerVR stuff? If my memory isn't failing me, then there's the counter to claims that it's impossible for xorg to support. :P
[0] Source: Me having these work just fine for quite a long time now on my personal machines that run xorg.
A number of wayland compositors are available in at least freebsd and openbsd (haven't checked on netbsd and dragonflybsd). Wayland is only a protocol. Whoever wants to support it can.
I'm kinda tired of this line that I see everywhere. The bottom line is that most people develop for Linux, and don't consider the BSDs, and so things end up broken, or not working at all. The popular libraries for writing Wayland compositors consider Linux first, and BSD support is bolted on later.
The end result is that it's just more work for everyone. X11 could have been fixed, it's just no one wanted to do so in time to head off the Wayland work. XLibre and Phoenix might have ended up working out if they'd been started 10-15 years ago, but Wayland has too much momentum now, for better or worse.
(Source: I am a Wayland compositor maintainer who would love it if his stuff would work on the BSDs, but I don't have the time or energy to install a BSD and test and fix.)
The maintainer of Phoenix puts it very well[0]:
> The main issue with Wayland is not a technical one but in its philosophy. X11 is "mechanism over policy" while Wayland is "policy over mechanism".