FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
Posted Feb 16, 2012 15:24 UTC (Thu) by bkw1a (subscriber, #4101)In reply to: FOSDEM: The Wayland display server by angdraug
Parent article: FOSDEM: The Wayland display server
Posted Feb 16, 2012 15:50 UTC (Thu)
by angdraug (subscriber, #7487)
[Link] (14 responses)
I'm not saying it's not important, I just don't see any value in repeating the same discussion within the space of a few days. I also don't think that the number of comments or level of anxiety is a good substitute for a sound technical argument. Finally, it is a big deal to add network transparency to Wayland: it is architecturally feasible, but it is still a lot of work. It just doesn't make sense to divert the scarce resources to this work until the primary usage scenario is in good shape.
Posted Feb 16, 2012 18:16 UTC (Thu)
by JoeBuck (subscriber, #2330)
[Link] (11 responses)
Perhaps some highly motivated people can put together a design for a kick-ass way to support remote access with Wayland that avoids the problems with the X implementation (too many round trips, too much bandwidth required). A remote access protocol that is aware of structure should be able to achieve much better performance than VNC.
Posted Feb 17, 2012 10:54 UTC (Fri)
by alankila (guest, #47141)
[Link] (10 responses)
We should *absolutely* start doing this work, and we might prefer it over X11 even if Wayland never actually lands on our desktops.
Posted Feb 17, 2012 13:22 UTC (Fri)
by Tet (guest, #5433)
[Link] (3 responses)
But why would you want to? The toolkit is absolutely the wrong place to be doing this. As I write this, I have applications open using at least 4 different toolkits. Implementing network transparency in each of them such that it behaves the same in all of my current applications is simply not going to happen. If you believe otherwise, I have a bridge I'd like to sell you...
Posted Feb 17, 2012 14:14 UTC (Fri)
by alankila (guest, #47141)
[Link] (2 responses)
In any case, in Wayland's architecture -- which does not define rendering at all -- there is no other obvious way to do the thing except by repeated bitmap snapshots of the window contents followed by costly analysis and encoding of the difference. It will suck.
Posted Feb 23, 2012 19:31 UTC (Thu)
by wmf (guest, #33791)
[Link] (1 responses)
Posted Mar 1, 2012 13:07 UTC (Thu)
by nix (subscriber, #2304)
[Link]
Posted Feb 18, 2012 2:24 UTC (Sat)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Making a remote GTK or QT UI is feasible and should not even be hard. AND since in that case only very little data is going to be transmitted, it can actually be useful.
Posted Feb 18, 2012 21:04 UTC (Sat)
by mathstuf (subscriber, #69389)
[Link]
You could have automatic gvfs and KIO slaves made for wayland-local:/ and wayland-remote:/ protocols so that the local and the remote filesystems could be accessed. There's a lot more than just pushing pixels across a pipe to get the full experience of running a remote application as if it were local.
Posted Feb 20, 2012 22:11 UTC (Mon)
by HelloWorld (guest, #56129)
[Link] (3 responses)
Posted Feb 21, 2012 11:52 UTC (Tue)
by alankila (guest, #47141)
[Link] (2 responses)
Posted Feb 21, 2012 13:23 UTC (Tue)
by HelloWorld (guest, #56129)
[Link] (1 responses)
Also, you didn't explain how to solve the issue of differing GTK+ versions between the client and the server.
Posted Mar 1, 2012 13:10 UTC (Thu)
by nix (subscriber, #2304)
[Link]
Because, after all, saving power by suspending your machine when not in use while leaving your processes running on another machine so they can keep doing background jobs is a rare use case, unless you jam the word 'cloud' in there, whereupon it suddenly becomes immensely important. Or something.
Posted Feb 22, 2012 7:44 UTC (Wed)
by mina86 (guest, #68442)
[Link] (1 responses)
If Wayland is designed with assumption that everything is done on client side and that client and rendering runs in the same process, they whole system is bound to be created in such a way that creating network transparency in a way that is something different then transferring (probably compressed) bitmaps (eg. VNC) is almost impossible.
Posted Feb 22, 2012 16:26 UTC (Wed)
by dgm (subscriber, #49227)
[Link]
To put things in perspective, that's a conceptual graphic stack.
(1)logic -> (2)drawing -> (3)window -> (4)desktop -> (5)display
Here "logic" is your program code. "Drawing" is the X11 and toolkit level. "Window" is a fully painted window, maybe including decorations. "Desktop" is the full desktop of overlapped windows, and display is the actual framebuffer and screen.
network between (1) and (2) is the HTML model. The logic is in the server, but the drawing code (the browser + javascript) is in the client.
Wayland starts at 3. It takes fully painted windows, composites them and takes them to the display. You could add network transparency _inside_ of Wayland with window buffer forwarding (seamlessRDP style). But you could also add network transparency outside of Wayland, for example VNC style using a virtual display. Or at the drawing level using a networked drawing library (X11). Or at the logic level with an HTML application. Of all those possibilities, only a seamlessRDP style protocol is not developed yet.
FOSDEM: The Wayland display server
Precisely because so many people care about network transparency, I'm confident that some of those people will actively contribute to efforts to support it. This is free software after all, it's not like we're helpless because Steve Jobs took out our favorite feature.
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
toolkit-level network transparency can be experimented with today
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
That sounds nice in theory, but I doubt it'll work. For example, what if the client uses GTK+ version n, and the server only has version n-1 available?
Also, you'd need to run one server for Qt, one for GTK+, one for EFL etc. etc., that's going to be a nightmare.
What I'd like to see is a rendering server that allows clients to upload little programs that know how to, say, draw a button, and then in order to draw a button, they only have to tell the server to run that program they've uploaded before using such and such parameters. I think DisplayPostscript worked like that. That would at least get rid of the need to run multiple servers for the toolkits, as they could more or less define their own specialized protocol.
However, I'm not sure that'll work either. It would probably require rather substantial changes in the toolkits, and it would probably be hard to port existing theme engines etc. to such a new paradigm, at least if one wants to exploit this kind of technology to a significant degree. Also, we already have similar technology: JavaScript and Canvas/WebGL. GTK+ already features the Broadway backend which renders into a browser window, though I'm not sure how much work is actually done on the client or on the server side.
So clearly, this is a hard problem to solve.
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
FOSDEM: The Wayland display server
network between (2) and (3) is the X11 model. The drawing code is in the server, but the window is in the client.
network between (3) and (4) is seamlessRDP. The Window is in the server, but the full desktop is not.
network between (4) and (5) is the VNC model. Everything is in the server, the client is just a remote screen.