Subject: Re: nonstandard bit depth possible?
To: None <port-mac68k@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-mac68k
Date: 01/05/2005 06:51:37
> Is it possible to use nonstandard bit depths in X11 in general,

Yes.

> and the mac68k color X server specifically?

I don't know.

You may well find that some clients - especially the more
colour-demanding ones, like image processing programs - don't work
well, or even at all, with "strange" depths.  But, just as with clients
that don't work sanely with one- or two-button mice, or with a tablet
instead of a mouse, this is a broken client (or at the very least a
client that makes assumptions that X provides no justification for)
rather than a problem with X proper.

Judicious use of Xvfb with some of the more interesting options can
help smoke out such problems during client development, but that's not
much help to you as an end user dealing with clients that already
exist.

> I've got machines with 512kB VRAM, which should theoretically support
> 640x480x13, if 13-bit color is possible.

4/5/4 colour makes perfect conceptual sense.

However, it seems unlikely to me that the video generation chain (from
video RAM to RGB signals) is going to be prepared to eat the incoming
bits in odd-size packages like that.  If a video chip exists that can
do 13-bit colour, I'd expect it to take 16 bits of data in and ignore
three, figuring that anyone who wants 13-bit colour can simply not
implement three of the bits in each 16-bit word.  (This could be done
by, for example, having 13 chips (resp. SIMMs etc) drive the low 13
data lines with one bit each and drive the other three lines with
constant data values (when the video RAM area is selected by address
decoding, of course).  16-bit-wide SIMMs with three of 16 chips missing
could be used for video RAM in such a machine.)

> I've always wondered if the restrictions to 4-, 8-, 16-, 24-, and
> 32-bit depths was arbitrary or some limitation inherent in an
> algorithm used somewhere.

It's arbitrary in that there's no reason it *has* to be done that way.
But it's not arbitrary in that it's not particular convenient to design
hardware that works that way.

It would be possible, and probably not even too difficult, to build a
virtual machine that works that way.  I'm not sure what the point would
be, though, beyond debugging stupid assumptions in X clients.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B