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

Bug#338245: framebuffer driver does not set display width properly if used without Shadow



Am Mittwoch, 9. November 2005 13:14 schrieb Michel Dänzer:
> On Wed, 2005-11-09 at 00:20 +0100, Peter Teichmann wrote:
> > diff -urd xc.orig/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
> > xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c ---
> > xc.orig/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c	2005-10-25
> > 23:02:32.000000000 +0200 +++
> > xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c	2005-10-25
> > 22:55:14.000000000 +0200 @@ -672,11 +672,19 @@
[...]
> > +	if (!fPtr->shadowFB)
> > +	{
> > +		int fbbpp;
> > +		/* FIXME: this doesn't work for all cases, e.g. when each scanline
> > +			has a padding which is independent from the depth (controlfb) */
> > +		fbdevHWGetDepth(pScrn,&fbbpp);
> > +		pScrn->displayWidth = fbdevHWGetLineLength(pScrn)/(fbbpp >> 3);
> >  	}
>
> Why doesn't the same code in FBDevPreInit() work? Because it gets a line
> length from a different mode? If so, shouldn't you just move the code
> from FBDevPreInit() here?

In FBDevPreInit, it gets the line length for the "built-in" mode that is 
present at the framebuffer device at the beginning. Here it is for that 
special mode which was selected for display. Without this patch, the line 
length from the "built-in" mode is preserved. But it can happen that the 
selected mode has a different line length, I believe that this is even the 
normal case ;-) The only reason why this bug was not fixed long before is 
probably, that it only shows without Shadow. But Shadow is the default, and 
on typical hardware with slow screen memory read speed you will not want to 
disable it.

I am not sure if I am just not able to see it, but it seems to me that parts 
of the framebuffer driver are not especially clearly coded...

> PS: It might be better if you submitted your patches upstream at
> https://bugs.freedesktop.org/ first and only asked for them to be
> backported to the Debian packages necessary once they've been applied
> upstream.

I can still do that. How can we "stop" these bug reports?

Peter Teichmann



Reply to: