On Sat, Jan 10, 2004 at 10:07:15PM -0500, Jonathan Thambidurai wrote:
>I discovered two problems (and have attached basic fixes) with the fbdev
>code.  First, rotation (portrait mode) is messed up; disabling xrandr in
>the fbdev driver fixes this (though xrandr should probably only be
>disabled when rotation is specified in XF86Config, as is done in the sis
>driver; my patch doesn't do this).  Second, the fbdev driver doesn't
>allow 24 bpp (I don't know if this was intentional, but it looked like
>there was some initialization code which handled a 24 bpp depth). 
>Lastly, 24-bit rotation is quite corrupt; maybe this should be disabled
>completely instead of giving a warning about corruption?  The shadow
>rotation code doesn't seem to handle 24 bpp rotation at all.

The 24-bit flags argument to xf86SetDepthBpp() should probably
be:

  Support24bppFb | Support32bppFb | SupportConvert32to24 | PreferConvert32to24

Since the actual framebuffer format is passed explicitly, this should
be safe in all cases.  It will then default to using 32-bit bpp for
depth 24 pixmaps.  It is possible that this change will fix the rotation
problem you are seeing at 24-bit.

It would be better to disable randr only when rotation is enabled.
Have you tried adding it to the else part of the following:

        if (!fPtr->rotate)
          FBDevDGAInit(pScrn, pScreen);
        else {
          xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, disabling DGA\n");

          if (pScrn->bitsPerPixel == 24)
            xf86DrvMsg(scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp
\n");
        }


David
-- 
David Dawes                                     X-Oz Technologies
www.XFree86.org/~dawes                          www.x-oz.com
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to