Re: VNC driver


Subject: Re: VNC driver
From: Charles McLachlan (cim@uk.research.att.com)
Date: Fri May 12 2000 - 03:24:46 MDT


On Fri, 12 May 2000, you wrote:

> Mac OS events -> Mac VNC intercepts -> Mac OS tries to send VNC data
> -> MOL is called upon from Mac OS -> Linux sends VNC data

For various reasons, its even worse than that. You need to patch VBLs so you
can do things when the mouse button is pressed, you have to use defferred tasks
to do networking and I had to impliment my own memory allocation system. MacVNC
is a *very* flawed system involving a tremendous amount of unstable low level
hacking. Quite frankly, after reviewing the source the other day, I'm surprised
it works at all.

> My experience seems to confirm this, by the way, even with a pre-release
> version of VNC driver. On a local machine, vnc driver worked almost as
> well as xvideo, while vnc on mac on mol on linux was noticeably slower
> than xvideo.

MacVNC is slightly more functional than the MOL driver in that it does
compression, which might slow it down a bit if running on a system where the
processor is the limiting factor rather than the network.

Also, MOL VNC could be made faster for situations where the Mac's display is
the same format as the X server's display by replacing invocations of the
translate function with a memcpy.

> Also, Mac VNC server can't possibly intercepts every single thing
> happenning on Mac OS, while it is possible with VNC driver, although I
> don't know if it makes any difference.

Not quite true. Due to stinky legacy code in MacOS you *can* catch every single
screen change. It's called the jSheildCursor mechanism and is one of the million
useful Mac hacks that I have never seen documented (or even mentioned)
anywhere. I got the details in an email I have since lost.

> Well, try it and see. Once support for many of encoding/decoding methods
> are added to the driver, it should work well for remote MOL.

Another fantastic thing about programming on the Linux side is that
you can copy chunks from the Xvnc server rather than rolling your own. Which
should make adding extra rfb encoding options nice and easy.

Mind you, one thing that might speed up operation more than adding VNC
compression is changing MOL's update catching mechanism so that it returns
fractions of scan lines. At the moment, every time the mouse moves, 2 rectangles
16 pixels high and (width of display) pixels wide are sent, which is
somewhat less than optimal on bandwith limited display systems (like VNC)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Charlie McLachlan
        AT&T Research Lab. Cambridge.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



This archive was generated by hypermail 2a24 : Fri May 12 2000 - 03:56:28 MDT