Wayland seems ready to me but the main problem that many programs are not configured / compiled to support it. Why is that? I know it’s not easy as “Wayland support? Yes” (but in many cases adding a flag is enough but maybe it’s not a perfect support). What am I missing? Even Blender says if it fails to use Wayland it will use X11.
When Wayland is detected, it is the preferred system, otherwise X11 will be used
Also XWayland has many limitations as X11 does.
Blender’s Wayland support is not great because they’re doing stuff from scratch. They’re not using an existing toolkit like GTK, Qt, Electron, or even something like SDL to get Wayland support.
But if you’re using an existing toolkit things are much easier and support is automatically there, you just need to do testing to ensure everything works.
The common biggest things that still use Xwayland are Chromium based apps and programs running under wine/proton. Chromium has an experimental Wayland mode that works well enough, but definitely has some bugs, especially around windowing. Wine Wayland is in the works.
Thanks for the inside.
Yeah Blender seems like an exception.
Also that means I play lots of Wine/Proton games and many web apps / Electron don’t care.
Also XWayland has many limitations as X11 does.
If an app has only ever supported X11, then it probably doesn’t care about those limitations (the apps that do care probably already have a Wayland version). And if an app doesn’t care about the extra stuff Wayland has to offer, then there’s not really a reason to add the extra support burden of Wayland. As long as they work fine in XWayland, I think a lot of apps won’t switch over until X11 support starts dropping from their toolkit, and they’ll just go straight to Wayland-only.
Yeah I agree. Maybe some day X11 will be seen as something legacy that needs to be deprecated. But not now…
Plasma deprecated their X11 session in v6 pending removal in the future, and Redhat has already dropped it in Fedora & will do for EL in the next release.
Plasma didn’t deprecate X11. Though some developers hinted that the Xorg session will probably be dropped before Plasma 7 and before Qt drops X11. But nothing concrete.
Oh indeed not deprecated, my bad. Wayland is default and “preferred” (how they’re deciding what to prefer I can’t imagine), and X11 is confirmed to be removed in a future release.
So it begins…
xwayland covers most use cases already anyway
Wayland isn’t even adopted by every desktop environment yet. xfce, cinnamon, mate, lxqt, and all the ancient window managers all use x11, and all have their users.
If it works on xwayland, chances are it won’t be switched for a long time.
Xfce4 and cinnamon are close to wayland support.
So software like CAD is funny. Under the surface, 3d CAD like FreeCAD or Blender is taking vertices and placing them in a Cartesian space (X/Y/Z - planes). Then it is building objects in that space by calculating the mathematical relationships in serial. So each feature you add involves adding math problems to a tree. Each feature on the tree is linearly built and relies on the previously calculated math.
Editing any changes up tree is a massive issue called the topological naming problem. All CAD has this issue and all fixes are hacks and patches that are incomplete solutions, (it has to do with π and rounding floating point at every stage of the math).
Now, this is only the beginning. Assemblies are made of parts that each have their own Cartesian coordinate planes. Often, individual parts have features that are referencing other parts in a live relationship where a change in part A also changes part B.
Now imagine modeling a whole car, a game world, a movie set, or a skyscraper. The assemblies get quite large depending on what you’re working on. Just an entire 3d printer modeled in FreeCAD was more than my last computer could handle.
Most advanced CAD needs to get to the level of hardware integration where generalizations made for something like Wayland simply are not sufficient. Like your default CPU scheduler, (CFS on Linux) is setup to maximize throughput at all costs. For CAD, this is not optimal. The process niceness may be enough in most cases, but there may be times when true CPU set isolation is needed to prevent anything interrupting the math as it renders. How this is split and managed with a GPU may be important too.
I barely know enough to say this much. When I was pushing my last computer too far with FreeCAD, optimising the CPU scheduler stopped a crashing problem and extended my use slightly, but was not worth much. I really needed a better computer. However looking into the issue deeply was interesting. It revealed how CAD is a solid outlier workflow that is extremely demanding and very different from the rest of the computer where user experience is the focus.
Yet games like Dyson Sphere project a triangle grid on a globe, run fine in wine wayland?
Wayland will perform better than X as there is no server it has to go through. It can talk almost directly to hardware
Some applications, such as those with tablet demands, are not met by current wayland des with proper tablet support and xwayland is currently the better option. This may have changed in the last year or so, but this is roughly my recollection of certain big art programs.
Some many specific issues with Wayland… Maybe that’s a reason. X11 is a huggeee dependency for a long time.
Xwayland doesn’t get input in some special way, it uses the exact same Wayland protocols to get input events as native Wayland apps. All claims about it being more complete or anything like that are nonsense.
Krita forces Xwayland because they have some X11 specific code they haven’t bothered porting away from, that’s all.
Because Wayland is fundamentally very different from the older X protocol, and many programs don’t even directly do X. They leverage libraries that do it for them. Those libraries are a huge part of the lag. Once GTK and Qt and the like start having a stable Wayland interface, you’ll see a huge influx of support.
A big part of the slowness is why Wayland is a thing to begin with. X hid a lot of the display hardware from apps. Things like accessing 3d hardware had to be done with specialized display clients. This was because X is natively a remote display tool. You can use X to have your program show its display somewhere else. Wayland won’t do that because that’s not the point. Applications that care will have goals for change. Applications don’t care will support it once someone else does it for them.
Right now, the only things that would benefit from Wayland are games and apps that make heavy use of certain types of hardware. Half of those don’t care about linux, while the other half is OK with X and xwayland.
May programs do though
You’re asking the Linux community to agree on something
No, he’s not!
Because it’s so complicated that given a page (page and a half) to answer the simple question, “Why does Wayland support still give you more problems than solutions?” We had to describe it like the summary of a PHD theses in client server architecture?
Come on with that load of hot trash 😭