Clearing Up Wayland FUD, Misconceptions
An anonymous reader writes "In clearing up common misconceptions about Wayland (e.g. it breaking compatibility with the Linux desktop and it not supporting remote desktops like X), Eric Griffith (a Linux developer) and Daniel Stone (a veteran X.Org developer) have written The Wayland Situation in which they clearly explain the facts about the shortcomings of X, the corrections made by Wayland, and the advantages to this alternative to Canonical's in-development Mir."
Who thought that "The Wayland Situation" was the title of a 70s sci-fi novel?
Better remoting than with X11? Seriously? I'm in!
Just recall to support authentication (certificates, kerberos, and/or ssh piping), and root windowless operation, and you will get every admin that works in corporate environments at least to test Wayland. If it manages to fulfill the promise on better reactivity (== better usability), Wayland will catch like wildfire.
Why not fix X?
wayland, mir, etc are all fine in theory.
but have you ever tried to actually install one of them on your own machine and get a hello world program working?
this crap is, at best, alpha quality software. its just utter vapor ware.
i sound like a grumpy old man, but thats because i have been hearing about the "demise of X" since, oh, around 1997. There was SVGALIB, there was GGI, there was SDL, there was Cairo, there was Display Postscript and its various iterations, there was all sorts of stuff. And here we are, still with X.
In 2013.
That's 20 years since linux was created. 20 years and the only widely adoptd alternative to X is on Android, and i dont even know what its' called.
Let me summarize:
1. Some old unused X11 API is bad
Comment: If it is needed for backwards compatiblity, it is needed for compatibility. We know you don't give a shit, and for you toying with wobbling windows on touch displays is more important.
2. Something is broken, but we won't fix it in X11 because we now play with Wayland.
Comment: Then shut the fuck up and leave my system working as it is (and did the last decades).
3. The feature you are using on a daily basis (networks transparency) and works perfectly is actually a NIGHTMARE to use and has to go.
Comment: Please tell me more about what is working for me and what not.
From the article: "Once XWayland is finalized and merged we should have more-or-less perfect backwards compatibility because every X app just gets its own mini X-server to deal with."
Dear Wayland developers: once you get that worked out, let me know.
Is its name. The problem with X? Some people cant set it up and the latest modifications are stupid ( a BLACK screen, really? What was wrong with the mesh?).
Wayland is being made because the guy who writes it want too, not because there is anything inherently wrong with X. Wayland is NOT a cure, its just a new thing... which is good since new stuff is fun. (and the name is soo cool!)
Media Coherence. Whats Media Coherence? In its simplest terms... Your browser window? That's a window. Your flash player window on youtube? The flash player itself, displaying the video, is a sub-window. What keeps them in sync? Absolutely nothing. The events are handled separately and right now you just pray that they don't get processed too far apart. Which is why when you scroll on Youtube ,or other video sites with a video playing, sometimes everything tears and chunks.
I've actually noticed that, and wondered why it did it. I figured it was a browser bug or something to do with my particular setup. Interesting that it's a much deeper problem according to TFA.
Since it is, is there some workaround? Because it's anoying as fuck.
Each application does its own rendering? 31-bit pixel counter?
This sounds like it's all pixels, like X, rather than geometry, like NeWS or display postscript.
So if I have monitors with high resolution I still have to tell all the applications to change their size, individually, or use a microscope to read the text, right?
If I stretch a window (intending to scale it, rather than just see more of what it shows) it has to go back to the application for re-rendering, right?
And if I have adjacent monitors with different resolutions they won't match up. Heaven help me if I lay a window across the boundary between two, the T between 3, or the + between four. Right?
Or have I missed something?
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
As an Ubuntu user, and somewhat of a fan, I was hoping to see the discussion on Mir vs Wayland. But where is it? The only mentions of Mir I see are in the Phoronix summary, and the slashdot summary. Only the slashdot summary makes it seem like Mir is talked about.
I don't have the knowledge to decide whether Mir is a good or bad way to do things (and certainly the "I hate anything that caninical does" sentiment of slashdot isn't informative either), so it would have been nice to here about Mir from someone who knows what they are talking about.
Not supporting remoting is a misconception about Wayland? I certainly didn't see any discussion about that in the article. Would someone please point out a web page that discusses Wayland's remote capabilities?
With the release of hardware drivers for the Raspberry Pi I decided to investigate Wayland a bit further.
One thing that has confused me about Wayland is "where are all the alternate GUIs?", X window managers number in the hundreds with every man and his dog writing one.. The extremely basic GUI seen in Weston has barely changed in years.
It seems that Wayland has thrown away X's 'mechanism, not policy' mantra, and the architecture combines device drivers, the display server and the window manager into one blob (the reference one being Weston). This means that every alternate GUI needs to know how to talk to hardware, instead of just how to lay out windows and control them, it's rather laughable. At least turn the hardware support and abstracted device driving into some sort of library,. Also there's practically no documentation on Weston to use as a basis for another GUI, and the code is barely commented.
Wayland may be good, but it needs many more years of work at the current rate and still has some big issues;
1) The terrible architecture that I mention above that makes it difficult for people to build GUIs.
2) Driver support needed for running, that doesn't seem to be forthcoming from some of the biggest names in graphics cards.
3) The fact that we'll need to run X clients in Wayland for years, if not indefinately. Negating most of the arguments of "but we can throw away the crusty bits of X, hurrah".
I'm not going to discuss the X remote support issue, I think that one has been done to death :)
X is for Ecstacy, and that's good enough for me!
congrats you missed the point
if you arent running without X, then you arent running without X.
you missed the whole point of my rant
which is why i said 'on my desktop PC'. which has a user base of, oh, several ten-million
not some niche little fad product with 512mb of RAM that has a month waiting list so hipsterss can pretend they are saving money
if you spend 8 hours trying to make your computer show a triangle on the screen, and fail, obviously its your fault.
welcome to the pre-ubuntu linux asshole philosophy of user support.
if a program cannot build easily on a standard linux machine, its not going to be adopted by hundred of millions of people and its not going to topple an installed standard with a huge userbase
the 'user is wong' attitude is what doomed every display system before and will doom wayland just the same.
get the thing to compile out of the box or dont ship it. a simple philosophy. we have cmake, autoconf, scons, choose your poison
...does Wayland run *on* an X server?
I could play with Wayland API and help it to take off but not if I have to wait 5+ years for Wayland to get X11 features and drivers.
i mean, we might as well discuss windows and directx
show me how to write OpenGL hello world programs for DirectFB on my desktop PC
you will scare the nutjobs who like to draw castles in their cheerios and tell you to go live there.
i have ever read.
I use the networking capability of X (process on IP address X using display on address Y, same or different IP, different user) every day, all the time.
For example, I always run a X server on Windows boxes, because I can then run some Linux process on the Windows display "root" window. Productivity is higher because I don't have to switch "containers", in order to switch applications, and copy/paste is trivial.
Similarly, I can have a process in a different, more locked-down, user running on the root window of "my" desktop, toggling between applications without having "switch user", open a different VM, ...
I'll keep using X11 as long as I can.
Why are you asking me these questions? Did you forget to take your meds?
Put that ancient remote session shit inside a module or run VNC. Some of us want a fast responsive GUI that doesn't rely on 30 year old protocols. Going from a windows box to something running X feels like jogging in mud.
Only the State obtains its revenue by coercion. - Murray Rothbard
"We're aware networking is important for you and rather than address this concern we're gonna casally ignore and dismiss you because we don't care about your concerns and it's probably easy anyway".
Many of X's recent "everything as pixels" shortcomings and network bottlenecks came to be because the exact same developers who are pushing to abondon X11 tried to make it into iPhone graphics. That didn't work very well and so they decided to abandon it in favor of the Wayland rewrite. Which is ok, fine, they can work on whatever they like. But when the same exact developers justify thier work with the statement that X is broken, and they're the bloody ones that broke it and abandoned it what way in the first place, it just pisses me off.
No, they don't know any better or are any smarter than the decades of programmers that came before them culminating in the cumulative end product known as X. They want their pet desktop-as-a-iPhone use case to work perfectly at the expense of all that other stuff they don't personally use. Classic case of young developers only thinking of their own needs and lacking the imagination or experience to see past themselves.
Yep. That's whatever they're talking about for them.
Anybody know if Wayland is doing something sane about input isolation? It's really bothersome that X allows every other X app to steal my keystrokes. Want my root-privileged sudo password? Just get me to run some malicious X app. Is there a malicious keystroke logger in Google Earth? Who knows.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
My main concern about this is that the desktop seems to be accelerated all the time. This is fine and dandy when you do general work, web browing and such, but if you play or develop games, it makes a slight difference. For example a quick blinking effect might get obscured somehow by the compositor slowing things down. This is more of a concern when developing, sure, but it's something I can do *now*.
Either unaccelerated window managers or KDE which allows dynamic turning off the desktop acceleration are good solutions, but what happens when everything gets composited no matter what, as it seems to happen with Wayland? I don't think not compositing full-screen apps is a good solution either, as you might play or test in a window for convenience...
and then felt the need to lecture me about how i was wrong.
i want to run non-X hello world wayland on my PC.
that doesnt mean raspberry pi. it means my PC.
PC. the thing sitting on my desk.
i wrote a brilliant rant about how this shit doesnt work. you failed to appreciate it and chose to lecture me about some bizarre toy product that has nothing to do with my points.
this shit doesnt work, people keep saying it will replace everything.
they call anyone who challenges them purveyors of "fear uncertainty and doubt.
FEAR - im afraid it doesnt fucking work
uncertainty - im uncertain if i should spend 40 hours porting my shit to this 'next big thing, or ubuntu's MIR, or ubuntu phone's ShitFlinger or whatever teh fuck its called.
Doubt - I Doubt anyone will ever write a game for linux if this is the fucking situation with the graphics layer - 4 to 5 different subsyetems with incompatable versions and all of this hoopla and bullshit and douchebaggery.
its fucking irressponsible, its shit, its like taking a giant snowjob and blowing it all over the open source community.
Now that we are on the topic of FUD and misconceptions, is it possible to not only discuss network transparency but also separate window-managers and client-side versus server-side decoration? Come on this is /. let's have religious war.
A major problem is not whether Wayland supports old X applications but instead that new Wayland applications are not going to be network transparent like X ones. That limits them to one to one network connection via third party hacks like VNC instead of the many to one and one to many options that X gives you.
It's a backwards step to the non-networked, single user, single platform mindset. That's not even what people are looking for in gaming consoles any more.
The ramifications are that new wayland only apps are only going to be useful if you are sitting right in front of the computer you want to use - an insane restriction now that phones and tablets with wifi are at the point where they can be effective terminals to a desktop computer doing the heavy lifting (video, graphics, voice recognition whatever).
The single platform restriction also sucks - linux only due to a deliberate design choice.
Sorry kids, a dumb framebuffer is not a new idea and a trip back to the 1970s has got to be justified with new features and good benchmarks before it can be proclaimed as better. For now there's only stupid block diagrams that pretend any internal complexity and internal communication is faster than something with more blocks in a diagram even if they are a lot simpler - it's just smoke and mirrors without benchmarks.
Even calling it Metro for linux at this point would be giving it too much credit - save the hype for when it delivers on a performance promise and has more features than SVGAlib from 1995.
In the article the "what's wrong with X" has a "Theoretical Example" so doesn't actually find something wrong.
Let's have some honesty, some real examples, some real benchmarks instead of advertising type "spin" and empty promises about what might happen later.
Let's have a real article about what Wayland is really doing now instead of another stupid and pointless "X sux" bit of shit.
There isn't even a screenshot.
The article may as well be about something that doesn't exist.
If your speech was getting unfairly suppressed I would mod you up but I wont - because of your tinfoil nut attitude. Constantly accusing people you dont know of being shills withtout any evidence besides your own conspiracy theories makes you a total idiot not deserving of any such help.
I have the best proof that there can possibly be -- they discuss development of a major infrastructure piece of Linux/Unix software but claim that anything other than Windows functionality, is worthless, and that Windows is better than everything else.
I know everyone here loves ragging on Mir, but it wasn't even brought up in the article, so why was it even mentioned in the summary?
// file: mice.h
#include "frickin_lasers.h"
I do not know whether Wayland is good or bad, but it is innovation. Only by trying Wayland can we progress to knew and better graphical subsystems.
All engineering systems have advantages and disadvantages, and Wayland will no different. So guys keep up the innovation and see what works.
HMO
Seems like a bit of FUD on both sides of the argument...
A while back, I spent a few minutes skimming the Wayland FAQ and Wayland Architecture Diagram. Interesting stuff, especially the architecture page, and they provide actual detail while the TFA mostly doesn't.
For comparison of the two architectures, when running X, you might have an ordinary window manager or you might have a compositing window manager. The Wayland model is that Wayland *is* a compositor that provides both window manager functions and some of the functionality of an X server.
From what I can see, here's the architectual differences between X and Wayland when it comes to supporting remote app display:
Intentionally misstating by being over simplistic, it sounds like the reason Wayland doesn't support remote displays is because it also doesn't support local displays! More accurately, Wayland supports local displays (of course), but unlike X11 provides no way to render to them. Wayland doesn't do rendering; it apparently "just" knows how to swap video buffers to a display device and coordinate buffers between multiple clients.
I'm thinking that, for example, if you want to write a graphical app, you might target OpenGL or cario and then expect your code to work in both Unix (with X) and on Windows (without X). With Unix/X, I'd expect an OpenGL library that handed X primitives to the X server. With Wayland, you'd apparently have an OpenGL library that rendered to a buffer and then handed the buffer off to the Wayland compositor.
So, Wayland isn't doing some of the things than an X server would do. Wayland is never working with drawing primitives. It seems obvious that you'd never be able to run apps that use the old X toolkit libraries against Wayland without an X server in the picture. And, both the TFA and the FAQ report this and note that you'll need X server(s) in addition to Wayland for the foreseeable future. The X server(s) talk to Wayland instead of to hardware.
There's going to be support for running Wayland apps remotely. However, as others have noted, an obvious question is how efficiently a "native" Wayland app could be displayed remotely. If the app and its libraries are rendering graphics primitives into display buffers, it seems obvious that low level primitive operations are lost by the time Wayland gets the buffers, so you have to be able to efficiently transmit bitmap deltas. Queue arguments re whether drawing primitives are more efficient or bitmaps are more efficient...
The discussion of doing remote Wayland apps seems to revolve around how to transmit the per-app buffers across the network instead of handing the buffer to the local Wayland compositor / display driver. Or perhaps about having the compositor know that certain app buffers should be transmitted instead of composited to the local display, but that's almost the same thing when viewed as a flow.
Transmitting bitmap deltas works pretty well, but for some apps, sending higher level information such as the original OpenGL might be better. With X, they defined an extension, GLX for essentially passing the OpenGL to a remote server. Similarly, I imagine it would be useful if an OpenGL app could talk to a remote Wayland server instead of sending bitmap deltas. So, it looks to me like it would be useful to define an extension mechanism for transport that would allow OpenGL commands to be sent to a remote computer where they could be rendered to a remote buffer and handed off to the remote Wayland compositor. Bonus points if the extension mechanism is generic. Seems like transport of audio might be another fit for a modern replacement of X.
Not an X server developer nor a Wayland developer. I may have garbled things somewhat, but perhaps someone could clarify the mistakes and help take a portion of the FUD out of the
I know this is Slashdot and reading TFA drops your street cred to zero, but if you're going to comment on the article then you should have some idea of what it says.
Summary: X11 is not network transparent anymore. It was in its original conception, but in practice that stopped being true a long time ago.
It's an example of where the article evades the issue and in nearly every case it still is network transparent anyway. If fact I can't think of an example where it isn't (even 3D games run remotely over X if you have decent graphics hardware at the display end).
Personally I see it as setting up an excuse for Wayland being tied deeply to the hardware, giving up on flexibility and pushing a lot of hard work back at the people writing the applications. IMHO it's a step backwards since the application writer has to consider implications of things like multi-monitor setups with different resolutions instead of Wayland taking care of it for them.
Then how about having decent hardware video acceleration on the end where you want to display it or VirtualGL if the good hardware is at the other end of a network pipe to where you want to see it?
Both work.
The first I was doing in around 1999 and the second a couple of years ago.
This ignorant "X sux" bullshit as part of hype for a project that should instead stand on it's own merits is annoying.
Backward compat would be nice, proven claims of performance would be nice, but nicer still would be that whatever it replaces that lots of bugs that have been opened on it and are closed. Only then will I be convinced that it MIGHT be worth it to switch from X11, and there had better have been backward compat all along so that all my legacy apps run in the meantime, Anything less is empire building, and judging on how well Ubuntu is maintained, that is a hard sell to me.
Web browser with javascript versus X, or VNC, or RDP, or just about anything? Are you still in school or are you attempting to play some sort of joke I just cannot see here? I was running interactive 3D applications over X with no apparent lag from a server in the next building using a desktop machine with a 4 megabyte video card in 1999 that was performing better than you'd expect with https+xhtml+javascript on a fast desktop machine now.
Which creates too much hard work for the application writer IMHO. See other posts for bits about dual monitor setups with different orientations or resolution, positioning of popup menus and other issues due to it being tied down hard to the hardware.