Its seems a lot of people are misunderstanding the RDP references. RDP does in fact do both app remoting and desktop remoting, although the later is what its most know for. However, in this discussion we're not talking about using RDP as-is in wayland, but rather about the conceptual differences in the protocol.
The X verison of remoting is that the client sends a stream of drawing requests which are then rendered on the server, whereas the RDP-style version is that clients render locally (using whatever rendering approach they want, including GPUs), and the system then sends the resulting images in an efficient version to the server. This image can be the buffer for the toplevel window (as in wayland) or of the whole desktop (traditional RDP).
Now, this sounds like a bad solution performance wise, as you have to send all pixels of the window each frame, but it turns out that this is a fallacy for a few reasons:
* The rendering model of X is not really useful for modern apps, so clients end up doing client side rendering a lot which makes the rendering operations heavy (X doesn't even have a way to send compressed images!).
* A lot of apps overdraw a lot, so sending the pixels in each drawing operation may very well be more data than the finished image.
* Its very hard to optimize a stream of drawing operations. For instance, the Xserver will do a lot of clipping which apps rely on to avoid expensive rendering, but of course this doesn't help with the network bandwidth. Its also very complicated to compare two frames if they are just a stream of drawing operations. In Wayland however things are very simple. You have perfect frames, so you only ever see finished versions of the window, which in practice differ in very small amounts. This makes it very simple to detect the minimal amount of changed pixels and send them over in a compressed format.
* X is very latency sensitive as it does a lot of work on the server side, like window hierarchy changes and event generation. This causes a need to often synchronize the application with the xserver which needs a roundtrip. Wayland instead treats the output as a dumb display and remote input as just sending the raw device input, which lets these run freely. So, Wayland should be much less sensitive to high latencies.
Some of this is fixable for X with e.g. NX, which adds a local server to get better latency behaviour and compressed images. But at this point this is not even X, you might as well compare it to rendering an X client on a remote wayland server and then connecting to that via wayland remoting.
Posted Feb 14, 2013 9:14 UTC (Thu) by khim (subscriber, #9252)
[Link]
The X verison of remoting is that the client sends a stream of drawing requests which are then rendered on the server, whereas the RDP-style version is that clients render locally (using whatever rendering approach they want, including GPUs), and the system then sends the resulting images in an efficient version to the server.
This is just plain wrong. RDP remotes GDI and (depending on the capabilities of client) Direct 3D commands on client. It also includes efficient protocol which compresses client-generated content. This is needed not just for Java applications but for things like Photoshop, too. But where possible RDP sends primitives to the other end.
Oh, and it usually does not use local GPU (because it'll not work if dozen of users will try to access server at the same time which is also not uncommon usecase).
The rest of response is not relevant because it's hard to compare something which exist only in alexl imagination with any other solution: I, personally, have no idea what the imaginary alexl's protocol does and how it's related to the X, Wayland or [real, not imaginable] RDP.
LCA: The ways of Wayland
Posted Feb 14, 2013 10:21 UTC (Thu) by alexl (subscriber, #19068)
[Link]
Its true that modern RDP has some extensions that do some of these things, like MS-RDPEGDI. I don't deny that, but as I've said, this discusson is not about RDP as-is. There was never any interest whatsoever in using exactly the RDP protocol in Wayland or X, that makes little sense as it is quite Win32 specific.
What I mean is that when Wayland developers say that "VNC" or "RDP" is better than X, they don't mean using the exact same bit streams, but rather the basic (original) concepts of these.
As to a protocol implementation, Kristian has an initial implementation of wayland remoting in his git repository and has been demoing it publically. I don't think its quite usable yet, but its far from in my imagination only. And even if there wasn't an implementation, I don't understand how discussing the real weaknesses of X vs a planned replacement is irrelevant?
Modern RDP is actually kind of a mix host and client rendering depending on what APIs the app uses and what kind of graphics it renders. If apps hit the right codepaths they get drawing commands piped to the client, otherwise it gets host rendered. Then they ensure that the most basic OS things like DWM gets this right so that e.g. window management always hits the efficient paths. In the case of Wayland the WM side is less problematic as the compositor always runs on the client, but for sure some of the more modern RDP extensions are interesting to look at. In particular I think forwarding of video streams is important to get right.
LCA: The ways of Wayland
Posted Feb 14, 2013 12:13 UTC (Thu) by sdalley (subscriber, #18550)
[Link]
khim, your knowledgeability is admirable. But it is sometimes badly offset by your arrogant manner.
LCA: The ways of Wayland
Posted Feb 19, 2013 13:05 UTC (Tue) by wookey (subscriber, #5501)
[Link]
Indeed. I have often wondered: who _is_ 'khim'? He (not she I suspect) seems very well informed about many things, but also impressively opinionated, even by geek standards. I wonder what background all this knowledge and these opinions come from.
LCA: The ways of Wayland
Posted Feb 19, 2013 16:31 UTC (Tue) by raven667 (subscriber, #5198)
[Link]
There are a few heavy posters that I wonder about, I think that khim and Cyberaxe and a few others have probably written more words on LWN than the people who work here and write for a living. I don't know where they find the time, do they really have jobs? 8-) It'd be nice to have a LWN meet-up and have a beer with our fellow commenters sometime.
LCA: The ways of Wayland
Posted Feb 19, 2013 18:49 UTC (Tue) by Cyberax (✭ supporter ✭, #52523)
[Link]
Personally, I write a lot of stuff during boring meetings :)
LWN meeting would be interesting (I'm in SF, btw).
LCA: The ways of Wayland
Posted Feb 25, 2013 10:10 UTC (Mon) by hummassa (subscriber, #307)
[Link]
I support the notion of a LWN meetup, but i suspect we are widely distributed around our little planet. Any fellow LWNer from anywhere can feel free to contact me for a beer whenever she or he gets stuck here in my neck of the tropical mountains (Belo Horizonte, MG, BR)...
LCA: The ways of Wayland
Posted Feb 25, 2013 4:54 UTC (Mon) by muwlgr (guest, #35359)
[Link]
'khim' could be Victor Khimenko (search Google, LKML)
LCA: The ways of Wayland
Posted Feb 14, 2013 14:00 UTC (Thu) by daniels (subscriber, #16193)
[Link]
Actually, it's massively relevant. People seem to assume that it's a straight binary switch between how X is perceived to work across a network today (which usually bears no relation to fact), or the very specific implementations of VNC/RDP and its extensions. Rather than having a third choice of a new protocol which does efficient compressed transfer of client-rendered images (yes, like VNC/RDP), but without necessarily being rooted or limited by any of the gripes people have with VNC/RDP.
If you don't believe me, go look at every other comment on this article.