[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Color depth issues (was Re: XF4 binaries, ...)



> > 16 bit depth is unversally broken at least whenever the fbdevhw driver is
> > used.
> 
> It works fine with the glint driver and pm2fb.

OK, I'll have a look at those to see what's done different there. 
 
> > Part of the problem seems to be that the kernel driver is only passed the
> > pixel size (bits_per_pixel) which is 16 for both 15 and 16 bit depth.
> > The fb_var struct doen't have a separate field for depth.
> 
> Right. Geert explained to me that the depth is encoded in the fb_bitfields for
> red, green, blue and transparency.
 
Nice idea, but the X server has all of those set to 0 when calling the
FBIOPUT_VSCREENINFO ioctl. That's explicitly enforced in
fbdevhw.c:xfree2fbdev_fblayout().

> > But that's not all - I've tried a variety of hacks to make the kernel driver
> > use the 16 bit depth to no avail. Some part of the X server appears to use
> > the wrong depth ...
> 
> Please elaborate what you have tried.

Changing the kernel atyfb driver to allow both 15 and 16 bit depth, trying
to figure out the depth from fb.var->red.length+fb.var->green_length+...,
together with setting the rgb bits to 555 or 565 in fbdevhw.c:fbdevHWModeInit
- no effect. Hardcoding 15 or 16 bit depth in the kernel - no improvement
there either. Some more things in atimach64ppc.c that I need to look at
the source at home again to describe. I'll rsync from Ani's source again
before resuming work on this (but that'll be a while).

	Michael



Reply to: