Re: [gtk-vnc-devel] [PATCH 0/7] Optimizations for high-latency X connections



Federico Mena Quintero wrote:
Hi, everyone,

I mentioned in #virt a few weeks ago that I was working on making
gtk-vnc be nominally as fast as TightVNC.  This came out from an
Important Customer(tm) who wanted to use virt-viewer, but who found it
to be too slow.

It turns out that they were on a crazy setup with a high-latency remote
X connection.  My patches implement some tricks from TightVNC to handle
such connections:

Can I ask, why in the world is your Important Customer(tm) forwarding gtk-vnc over SSH via X instead of doing VNC over X? That would solve all of these problems.

Regards,

Anthony Liguori

- Request backing store from the X server so we'll hopefully be asked to
repaint less.

- Compress pointer motion events so both the VNC and X servers can keep
up.

Finally, I made some things closer to TightVNC itself:

- Specify the supported VNC encodings in the same order as TightVNC.
Its ordering actually makes a lot of sense; gtk-vnc's didn't seem as
good from looking at protocol traces with Wireshark.

- Add support for LastRect encoding.  This lets the VNC server send the
stream of Tight rectangles plus and end-marker, without having to
compute the actual number of rectangles in advance.

Finally, two extra patches:

- Daniel Berrange's patch from Fedora to avoid requesting framebuffer
updates when we don't need them.

- Enable local_pointer by default to make aiming easier.  Otherwise we
have to wait for both VNC and X to repaint before the user will see
where he is about to click.  This makes things much more usable on
high-latency X connections.

I'm not horribly happy with just making local_pointer=TRUE; it would be
better to enable it by default, but use a "dot" cursor like TightVNC
instead of the normal arrow.

Anyway, I hope this helps.  The next set of patches I submit will be for
a little tool to get predictable VNC output for profiling purposes.

Federico Mena Quintero (7):
  Specify supported encodings in the same order as TightVNC
  Add support for LastRect encoding
  Debug pointer events
  Compress motion events to the VNC connection can keep up
  Use X window backing store for the VNC window
  Fedora patch: avoid repainting for non-framebuffer requests
  Enable local_pointer by default to make aiming easy on high-latency X
    connections

 ChangeLog        |   53 +++++++++++++++++++++
 src/gvnc.c       |   16 +++++-
 src/gvnc.h       |    1 +
 src/vncdisplay.c |  138 +++++++++++++++++++++++++++++++++++++++++++++++-------
 4 files changed, 188 insertions(+), 20 deletions(-)

  Federico


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Gtk-vnc-devel mailing list
Gtk-vnc-devel lists sourceforge net
https://lists.sourceforge.net/lists/listinfo/gtk-vnc-devel





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]