To view parent comment, click here.
To read all comments associated with this story, please click here.
Current systems, as I understand them capture what's being displayed and apply varying degrees of compression to it before sending the output across the network. Theoretically, with a 3D accelerated desktop you could just send the instructions for drawing the primitives the desktop is composed of across the network and have the GPU at the other side render them freeing up processing power on the server side and allowing for higher quality and a richer experience on the client side.
There's quite a few catches here actually: the whole windowing subsystem would have to support network transparency all the way from the lowest graphics functions. X does support network transparency so that would be possible with X, but it just hasn't been done. With Windows it is not possible without rewriting the whole thing. There's also a few other caveats: both ends would have to have exactly same fonts or the end result wouldn't look the same, also you'd still have to send all pictures like icons and web page elements over the network.
Not every remote desktop implementation works by capturing a bitmap and sending it across the network. VNC works like this, but RDP or ICA or even X work differently.
They do exactly what you just described: they send graphics command across the network and the client interprets them, by rendering what the server sent.
As far as I know, X already does this (sending drawing primitives across the network). On the other hand, its network performance isn't stellar, so there may be problems with either the protocol or the implementation (hence the need for NX or similar).
RDP also has an extension for this: http://msdn.microsoft.com/en-us/library/cc239611.aspx
"For example, instead of sending the bitmap image of a filled rectangle from server to client, an order to render a rectangle at coordinate (X, Y) with a given width, height, and fill color is sent to the client. The client then executes the drawing order to produce the intended graphics result."
The point of sending bitmaps is that you waste bandwidth, but you save CPU. Which can be good for thin clients. I don't think it's a good trade off, but hey, I didn't create these protocols (VNC, RDP without this extension) 
It all depends upon the network's characteristics. X performance on a LAN is quite good. A bit of light compression might help there, but it's debatable whether it would help or hurt. X is, however, a very "chatty" protocol. The serialized round trips are excessive. (Run X over a ppp connection and watch the modem lights.) Latency kills. Even just 10 or 20 ms. The neat thing about NX is that it *is* X, and not one of those framebuffer transmission kludges like VNC. Fast as lightning... and still X. One day, it will be an official extension of X and I can't wait.
Edited 2008-05-29 18:38 UTC






Member since:
2005-07-06
Current systems, as I understand them capture what's being displayed and apply varying degrees of compression to it before sending the output across the network. Theoretically, with a 3D accelerated desktop you could just send the instructions for drawing the primitives the desktop is composed of across the network and have the GPU at the other side render them freeing up processing power on the server side and allowing for higher quality and a richer experience on the client side.