>"vncDesktop: Current display is PLANAR, not CHUNKY! WinVNC cannot be used
with
>this graphics device driver."

I received this error while trying to set up WinVNC on an embedded system.
Fortunately for me, I knew what the terms planar and chunky meant from my
own graphics programming experience.

To the VNC team - since this appears to be a growing problem, this error
message needs to be updated.  I doubt that more than 5% of computer users
even stand a chance of knowing what this message is talking about.  A more
directly useful error message would be "WinVNC requires a display with 256
or more colors.  Please adjust your video settings, update your drivers, or
change your video hardware."  EVEN BETTER - WinVNC could attempt to
automatically switch to a 256+ color mode with ChangeDisplaySettings or
ChangeDisplaySettingsEx.  Then, if that worked, the user wouldn't have to
do anything else.  If it failed, the error message could be even more
explanatory.

Please keep in mind that this is a problem on the SERVER end, not on the
viewer end.

History and technology lessons follow for those of you who are interested...

For those of you who are interested, this is a problem because WinVNC must
pull the image of the screen from the system.  It does this with GetDIBits
(probably with some intermediate work, but this is the core routine), a
function supplied as part of Windows.  To process the pixels, VNC wants
full 24bit color values.  GetDIBits refuses to convert images from planar
(definition below) screens into 24bit color values.  It *would* be possible
to replace GetDIBits with a looping call to GetPixel, but the speed penalty
would be unimaginable.  GetPixel is PAINFULLY slow.

As for what Planar and Chunky mean -- the image on your screen is stored in
memory somewhere.  In a Chunky system, all of the information necessary for
displaying one pixel is in a single contiguous "chunk".  256 color displays
use 8 contiguous bits, 24bit displays use 24 contiguous bits, and so on.
You can represent any pixel by one single address and a knowledge of how
many bits you are interested in.  By contrast, Planar video modes store
data in bit planes.  This is usually only used for 16 color or lower
displays.  16 colors requires 4 bits per pixel to store.  It would be
possible to store those 4 bits contiguously, in a chunky format.  But when
16 color modes first came around, the hardware was not fast enough to
handle that.  The designers had to split the work out into parallel units.
So they made 4 different regions of memory, called bit planes.  Each bit
plane stored one bit of each pixel for the display.  The first bit plane
stored the first bit of all the pixels.  The second bit plane stored the
second bit, etc.  That allowed the hardware to use a separate piece of
equipment on each bitplane to construct the necessary signals to send to
the monitor.  (Keep in mind that pixel clocks, the frequency at which
values must change for the monitor to display a pixel, exceed 28MHz for a
640x480 60Hz monitor.  In the days when an 12MHz 286 was a hot machine, you
couldn't expect a single pipeline to manage all of this work at 28MHz.)
Anyway, planar mode became the standard for 16 color modes, and continued
as such even after the hardware no longer needed it -- software written for
planar mode would not be able to work in a chunky format.

The practical upshot of this is that the standard VGA driver that will work
on almost any video card runs in 16 color planar mode.  Unless you can get
the SVGA driver or some chip specific driver to support 256 or more colors
on your hardware, you won't be able to run WinVNC.  And there isn't really
anything reasonable that the developers could do to change that -- as I
mentioned, the only alternative (GetPixel) is too slow to even consider.
Screen updates would take around a minute, even on fast CPUs, and worse on
a 486 or Pentium 75.

Mac
 _____________________________     /"\
 Mac Reiter                        \ /    ASCII Ribbon Campaign
 Nomadics, Inc.                     X     Against HTML Mail
 [EMAIL PROTECTED]               / \
---------------------------------------------------------------------
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