summaryrefslogtreecommitdiffstats
path: root/x11vnc/misc/turbovnc/README
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/misc/turbovnc/README')
-rw-r--r--x11vnc/misc/turbovnc/README147
1 files changed, 147 insertions, 0 deletions
diff --git a/x11vnc/misc/turbovnc/README b/x11vnc/misc/turbovnc/README
new file mode 100644
index 0000000..b8e0ac9
--- /dev/null
+++ b/x11vnc/misc/turbovnc/README
@@ -0,0 +1,147 @@
+INTRO:
+------
+
+This is a "patch" to make x11vnc/libvncserver work with TurboVNC:
+
+ http://www.virtualgl.org/About/TurboVNC
+
+It is very experimental/kludgy. Not all TurboVNC features may be enabled.
+We are currently evaluating whether TurboVNC support should be officially
+put into x11vnc/libvncserver.
+
+TurboVNC is an optimized VNC for fast refresh rates on fast networks.
+
+It does pretty well on good broadband as well. But it is not as fast
+as regular TightVNC on slow links.
+
+
+TURBOJPEG:
+---------
+
+TurboVNC uses the TurboJPEG library based on a fast proprietary JPEG
+implementation. You will need to download it from the VirtualGL
+sourceforge site:
+
+ http://sourceforge.net/project/showfiles.php?group_id=117509&package_id=166100
+
+Either install it or simply unpack the .deb or .rpm file into a directory.
+
+N.B. you can unpack a .deb via 'ar x package.deb' and the extracting
+from the data.tar.gz file. rpm2cpio can be used to unpack .rpm's.
+
+
+QUICK-START:
+------------
+
+For those in a hurry:
+
+ cd x11vnc-x.y.z/x11vnc/misc/turbovnc
+ ./apply_turbovnc
+ cd ../../..
+ env LDFLAGS='-L/DIR -Xlinker --rpath=/DIR' ./configure
+ make AM_LDFLAGS='-lturbojpeg'
+
+where you replace /DIR with your directory containing libturbojpeg.so.
+
+
+PATCHING AND BUILDING:
+----------------------
+
+After unpacking your x11vnc-x.y.z.tar.gz tarball cd to the
+x11vnc-x.y.z/x11vnc/misc/turbovnc (where this README file is) and from
+that directory run:
+
+ ./apply_turbovnc
+
+that will modify files in the libvncserver and x11vnc directories above
+this directory. (To undo these changes run: ./undo_turbovnc) The input
+sources, tight.c and turbojpeg.h are from the TurboVNC source package.
+
+After applying, go back to the top level source directory and run:
+
+ env LDFLAGS='-L/path/to/turbojpeg -Xlinker --rpath=/path/to/turbojpeg' ./configure
+
+where the turbojpeg library is:
+
+ /path/to/turbojpeg/libturbojpeg.so
+
+(change /path/to/turbojpeg to the directory where you installed or
+unpacked it.)
+
+If you are not using gnu gcc and gnu linker the options may be a little
+different (e.g. -R instead of -Xlinker --rpath).
+
+If you need additional ./configure options or env. var. settings,
+add them too.
+
+
+Next, run this make command:
+
+ make AM_LDFLAGS='-lturbojpeg'
+
+This is a hack and may not always work, if it doesn't edit x11vnc/Makefile
+and add '-lturbojpeg' to the LIBS variable.
+
+This should create a binary:
+
+ ./x11vnc/x11vnc
+
+that supports VirtualGL's TurboVNC.
+
+You will need a TurboVNC viewer, you can get one here:
+
+ http://sourceforge.net/project/showfiles.php?group_id=117509&package_id=128130
+
+Let us know how it goes.
+
+
+PERFORMANCE:
+------------
+
+Note that x11vnc has to read the display's screen pixels from the
+graphics card memory. This can be slow, e.g. 10 MB/sec.
+
+There is not a big need for graphics card manufacturers to optimize the
+read rate; the write rate is the one they optimize greatly.
+
+ http://www.karlrunge.com/x11vnc/#limitations
+
+If you run x11vnc and see lines like this:
+
+ 28/02/2009 00:52:07 Autoprobing selected port 5900
+ 28/02/2009 00:52:07 fb read rate: 10 MB/sec
+ 28/02/2009 00:52:07 screen setup finished.
+
+you have a typical slow one.
+
+Whereas if you see this:
+
+ 28/02/2009 00:54:46 Autoprobing selected port 5900
+ 28/02/2009 00:54:46 fb read rate: 321 MB/sec
+ 28/02/2009 00:54:46 fast read: reset wait ms to: 10
+ 28/02/2009 00:54:46 fast read: reset defer ms to: 10
+ 28/02/2009 00:54:46 screen setup finished.
+
+that is very fast.
+
+We have only seen it this fast on Linux by using the nvidia proprietary
+graphics drivers. The Xorg drivers are typically slow 10 MB/sec.
+
+It will also be fast if the X server is virtual: Xvfb or Xdummy
+since the screen pixels are stored in RAM:
+
+ http://www.karlrunge.com/x11vnc/faq.html#faq-xvfb
+
+And it will be fast if the ShadowFB xorg.conf option is enabled (if the
+card supports it.)
+
+
+The point we are trying to make is that even though TurboVNC uses a
+wicked fast JPEG implementation, and cuts out overhead in its attempt to
+pump out as many frames per second as it can, if it is slow for x11vnc
+to read the screen pixels in the first place then you might not even
+notice the TurboVNC speedup.
+
+So TurboVNC+x11vnc will be faster than TightVNC+x11vnc, but if there is
+a large overhead/bottleneck from reading the graphics card framebuffer,
+then the speedup will be marginal.