From: Ondrej Z. <san...@cr...> - 2007-10-01 20:50:17
|
On Mon, Oct 01, 2007 at 07:43:45PM +0200, Krzysztof Helt wrote: > > > - sets r,g,b length field from the bits_per_pixel value otherwise > > > the fbset fails in simple case like switching depths:=20 > > > 8bpp ->32bpp -> 8bpp > >=20 > > When some depth and some color lengths are requested then this driver > > (or precisely svga_match_format() ) only changes them up (which is corr= ect > > behavior according to some previous email from A. Daplas). > >=20 > > But if you do some partial change of mode using fbset, then fbset uses > > previous values for unspecified values of var structure in > > FBIOPUT_VSCREENINFO call. For example if you use 32bpp and do > > fbset -depth 16, then fbset calls FBIOPUT_VSCREENINFO with arguments > > requesting depth 16 but color length 8 for each channel. Better way > > is to put zeroes to color lengths (which is what fbset does when you > > do something like 'fbset 640x480-60 -depth 16') - workaround is to use > > argument -rgba 0,0,0,0 with -depth change using fbset. > >=20 >=20 > What is a difference if certain color depths allow only specific color le= ngths? No difference. svga_match_format() interprets color lengths in FBIOPUT_VSCREENINFO as minimal requests. Perhaps svga_match_format() could be changed to choose any mode with matching depth in case there is no mode with matching depth and color lengths. I will send patch. --=20 Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: san...@cr..., jabber: santiago@= njs.netlab.cz) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so." |