First off, sorry for the accidental previous message.

Tristan ... thanks for the suggested workarounds with modifying the
translate.c file.  They appear to have resolved the issues we have seen.

     - Jeff

>
>> So, when VNC is started using -cc 3, when Apollo is started, the
>> performance goes to pot.  The VNC viewer cursor gets WELL ahead of the X
>> cursor.
>> 
>> When I quit from Apollo, the performance gets better.
>> 
>
>I suspect I know what the problem is.
>
>Going from 8-bit PseudoColor server to a TrueColor viewer is hard to do
>efficiently, because every time the colormap is changed, potentially the whole
>screen is affected.  Xvnc "copes" with this by simply sending a complete update
>to the viewer.  This works OK for most applications which simply allocate a few
>colours once off, but not for an application like this Apollo which actually
>changes the colormap constantly while it is running.
>
>There are a few things I can suggest (other than finding a version of Apollo
>which doesn't need a PseudoColor server), but they all involve modifying VNC:
>
>* If you're lucky, then this Apollo program won't really be changing pixel
>  values which are on the screen, in which case Xvnc sending a full update is
>  unnecessary.  You can try hacking this bit of Xvnc out by removing lines 399
>  to 403 of Xvnc/programs/Xserver/hw/vnc/translate.c:
>
>        REGION_UNINIT(pScreen,&cl->modifiedRegion);
>        box.x1 = box.y1 = 0;
>        box.x2 = rfbScreen.width;
>        box.y2 = rfbScreen.height;
>        REGION_INIT(pScreen,&cl->modifiedRegion,&box,0);
>
>  and recompiling.  Even if it doesn't work fully, the worst that should happen
>  is some wrong colours on the viewer.  It should certainly stop the real
>  performance problem.
>
>* Run the viewer using its own colormap.  This can be done with the X VNC
>  viewer on a PseudoColor display with the -owncmap option, but I don't think
>  it can be done with the Windows viewer as is.  It might be possible to modify
>  the Windows viewer to tell the VNC server that it uses a colormap and then do
>  the translation itself (in fact I suspect the Windows API might even do the
>  translation for you).  Not being a Windows programmer I don't know how hard
>  this would be.
>
>* Ideally Xvnc could be made "smarter" about working out how much of the screen
>  is affected by a colormap change, but that's really quite hard (you'd need a
>  kind of "reverse index" of the framebuffer, telling you for each pixel value
>  whether that pixel value occurs in particular areas of the screen).
>
>
>Hope this helps,
>
>Cheers
>
>Tristan
>
>---------------------------------------------------------------------------
>Tristan Richardson   [EMAIL PROTECTED]   www.uk.research.att.com/~tjr
>---------------------------------------------------------------------------
>AT&T Laboratories Cambridge, 24a Trumpington Street, Cambridge, CB2 1QA, UK
>Tel: +44 1223 343000      Fax: +44 1223 313542      www.uk.research.att.com
>---------------------------------------------------------------------------
>---------------------------------------------------------------------
>To unsubscribe, send a message with the line: unsubscribe vnc-list
>to [EMAIL PROTECTED]
>See also: http://www.uk.research.att.com/vnc/intouch.html
>---------------------------------------------------------------------
>


-- 
Jeff Boerio, DPG-OR Engineering Computing, [EMAIL PROTECTED]
Mgr, UNIX Software Applications & Support
Desk:  (503) 712-217
Mobile:  (503) 887-0113
---------------------------------------------------------------------
To unsubscribe, send a message with the line: unsubscribe vnc-list
to [EMAIL PROTECTED]
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------

Reply via email to