|
|
Subscribe / Log in / New account

You betray your ignorance of wayland

You betray your ignorance of wayland

Posted May 27, 2012 10:25 UTC (Sun) by Jonno (subscriber, #49613)
In reply to: You betray your ignorance of wayland by butlerm
Parent article: Announcing printerd

With Wayland (the protocol) there are two possible ways to do remote operation:

Option 1: Remote rendering *on top of* Wayland. In this scenario clients (applications) don't do rendering themselves, but sends rendering commands to the display server, which render the windows and ask the Wayland compositor to display them. This will ofcourse require changes to the clients, or to the toolkit they use. You can use the standard compositor (e.g. Weston) on the display server, but will need a rendering server and protocol as well. One existing solution is to use xserver and X11, but developing a better protocol is a possible future improvement.

Option 2: Remote composition *below* Wayland. In this scenario clients render the windows themselves and ask the local compositor to display them. The local compositor, however, does not, but instead compress the windows and sends them over the network to the display server, which in turn asks its Wayland compositor to display them. This will work with all Wayland clients without modification. You can use the standard compositor (e.g. Weston) on the display server, but will need a proxy compositor and client to forward the windows over the network. This is not yet implemented in production-ready code (though there are abandoned proof-of-concept code for older Wayland versions), but is expected to be the default once done.

Option 2 is often called VNC-like because you send pre-rendered images over the network, but unlike actual VNC, you will get rootless windows that integrate just as well as remote X11 windows, so a better description would be Xpra-like. For most (but not all) applications option 2 will require more bandwidth than option 1, but option 2 will require less roundtrips and are thus not as sensitive to lag (a.k.a. poor ping times).

User of dial-up connections and users on over-saturated local networks might want to deploy option 1 (i.e. no change from today), but most use cases will be better served by option 2 (i.e. better performance than today).


to post comments

You betray your ignorance of wayland

Posted May 27, 2012 21:12 UTC (Sun) by raven667 (subscriber, #5198) [Link] (2 responses)

Option 2 is probably the better architecture, every client will get it for free and it is the technique that has the most research and work behind it. As far as I know the main protocols (ICA, RDP, PCoIP, SPICE, VNC) are all designed this way at the core and are all using similar optimization techniques and research to reduce bandwidth usage and reduce lag. What kind of rendering protocol is the OnLive service using?

You betray your ignorance of wayland

Posted May 28, 2012 5:52 UTC (Mon) by butlerm (subscriber, #13312) [Link] (1 responses)

RDP is based on T.128, which has the usual set of rendering operations, font and image caching, and so on. I understand that ICA is similar, and so is SPICE. Of course actual implementations may rely more on bitmap updates then the supported rendering commands these days for relatively obvious reasons.

You betray your ignorance of wayland

Posted May 28, 2012 6:43 UTC (Mon) by raven667 (subscriber, #5198) [Link]

> RDP is based on T.128

I'm not sure if that's the chicken or the egg, these protocols (RDP, ICA) have been deployed for more than 20 years and I'm not sure that the standards you references aren't just ex post facto documentation of existing practice.

> the usual set of rendering operations, font and image caching, and so on

One more thing to point out is that all the protocols I listed are add-ons to an existing system (mostly MS Windows) that isn't designed around remoting applications and so has to integrate with an infrastructure designed around local display, the same kind of problems that would need to be solved to remote native Wayland applications.

The methods for local display and remote display have little relation to one another and I think experience has shown that this is a good arrangement, trying to do both with the same method leads to a design that is poor for both cases.

Does any of that sound similar to your understanding of the situation? 8-)


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds