Re: [Linux-fbdev-devel] Re: FBdev updates.

Antonino Daplas (adaplas@pol.net)
06 Mar 2003 09:18:29 +0800


On Thu, 2003-03-06 at 04:23, James Simmons wrote:
>
> > > And one (or two...) generic questions: why is not pseudo_palette
> > > u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?
> >
> > Yes, all drivers should treat the pseudo_palette as u32* anyway, so why
> > not change pseudo-palette from void* to u32*?
>
> See other email.
>
> > > And why we do not fill this pseudo_palette with
> > > i * 0x01010101U for 8bpp pseudocolor and i * 0x11111111U for 4bpp
> > > pseudocolor? This allowed me to remove couple of switches and tests
> > > from acceleration fastpaths (and from cfb_imageblit and cfb_fillrect,
> > > but I did not changed these two in my benchmarks below).
> >
> > I also agree for a different reason. Cards with unconventional formats
> > (such as monochrome at 8 bpp - 0 for black , 0xff for white) will not
> > work with the current code.
>
> Isn't that the job of setcolreg?
>
setcolreg does that for directcolor and truecolor modes, because they're
the only ones that uses the pseudo_palette. See all driver codes, the
pseudo_palette is never initialized if in pseudo_color.

The purpose of the pseudo_palette is to enable to write pixels to the
framebuffer without knowing the color format at all. So, if you have
monochrome, then black is 0 and white is 1. But for monochrome 8bpp,
black is 0 and white is 0xff.

fbcon will send 0's and 1's, thus 0 and 1 will be written to the
framebuffer. If the drawing functions referred to the pseudo_palette,
whatever the visual format, then 0 and 0xff will be written, as it
should be.

Tony
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger
> for complex code. Debugging C/C++ programs can leave you feeling lost and
> disoriented. TotalView can help you find your way. Available on major UNIX
> and Linux platforms. Try it free. www.etnus.com
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/