On Sat, 2002-07-06 at 23:43, Michel Lanners wrote:
> Since nobody seems tempted to reply ;-), I'll add a bit more info
> myself...
> 
> On   3 Jul, this message from To: [EMAIL PROTECTED] echoed through cyberspace:
> > I've come across a probelm with X 4.1 and 4.2 (4.0 was fine). I'm trying
> > to avoid using shadowfb for performance reasons.
> > 
> > Anyway, upon initialization, I get a segfault whn not using shadowfb.
> > Here's the backtrace:
> > 
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x10253c9c in fbBlt (srcLine=0x10af2f68, srcStride=4, srcX=0, 
> >     dstLine=0x30545010, dstStride=1536, dstX=0, width=128, height=0, alu=3, 
> >     pm=4294967295, bpp=32, reverse=0, upsidedown=0) at fbblt.c:174
> [snip]
> > 
> > dstLine in fbBlt() points to nowhere. 
> 
> More hard looking revealed that the framebuffer line length is
> calculated wrong (too big), making the framebuffer access go horribly
> out of bounds. In drivers/fbdev/fbdev.c, FBDevPreInit(), line 528:
> 
>   pScrn->displayWidth = fbdevHWGetLineLength(pScrn)/(fbdevHWGetDepth(pScrn,NULL) >> 
>3);
> 
> fbdevHWGetLineLength() is OK; but fbdevHWGetDepth() returns 24. This is running
> depth 24, but the framebuffer is 32 bpp. So, to get the line length in
> pixels, the calculation should be done with fbbpp instead of depth.
> 
> Now, the question is: how?
> 
> fbdevHWGetDepth() has a second argument, an int *. If provided, it is
> filled with the fbbpp as: fPtr->var.bits_per_pixel. Wouldn't this be the
> better choice for calculating the line length?
> 
> I'll test this as soon as the recompile finishes... Comments?

Looks good to me, and I think I'm guilty of writing that code. :) I
still wonder though if this will work the first time if the console is
run at a different bpp.


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to