Frame Buffer Driver / FBDEV

Michel Dänzer michel at daenzer.net
Thu Mar 2 03:01:06 PST 2006


On Thu, 2006-02-23 at 21:17 +0200, bora.sahin at ttnet.net.tr wrote: 
> 
> I have a mipsel machine and Xorg/fbdev working on it. The machine has base 
> framebuffer functionality...
> 
> There is a problem with understanding Xorg/fbdev approach between me and 
> vendor engineer. He says that
> 
> "This is by design - when Xorg is running on the framebuffer, it uses the 
> settings from the framebuffer. 
> 
> Xorg cannot change the settings once they have been esablished with the 
> framebuffer."
> 
> I am saying that 
> 
> "X doesnt want to get settings from FB.  It has own database. Just wants to 
> learn if the specified setting in the xorg.conf is eligible or not by testing 
> it against FB driver because FB knows the hardware. Then Xorg tries to set 
> its own settings by giving the necessary parameters to FB via ioctl. If that 
> fails then fallback to buildin mode..."

What you're saying sounds about right.

> When X checks if its res is acceptable, that frame buffer driver sets 
> var->fields to current settings. Thus it deceives Xorg no matter what the 
> resolution is, be it 1280x1024, 800x600 etc. (within monitor limits so the 
> max is 1280x1024).

Sounds like a broken framebuffer device to me, but you may want to
double check this with the linux-fbdev-devel list.


> Secondly comes dept, bits_per_pixel. If they are equal there is no problem 
> though FB driver now only works on 16 bit. But when xorg.conf says depth is 
> 24 bit then I think it assumes 4 byte for a pixel.(SupportConvert24to32, 
> SupportConvert32to24 is another issue if it matters) 

See the xorg.conf manpage about the DefaultFbBpp directive.

> Vendor engineer says that "Xorg should know enough to transform between 24 
> bit and 16 bit". I dont think Xorg transforms pixels that way. Which one is 
> right?

You are, basically. Depth/bpp is a static configuration item that never
changes in the server's lifetime, and the server doesn't support it
being different between the hardware and the root window. That said, the
driver could still do it via a shadow framebuffer, but I'm not sure what
the point would be.


> Thirdly, when Xorg wants 24 bit but FB provides 16 bit, the screen is 
> interesting. Resolution same for Xorg and FB but in Xorg screen is bigger 
> than 1/3. That is, vertical length is OK but when horizontal line passes the 
> right corner of the screen, it immediately begins at the left side and comes 
> up to the middle of the screen. So the left side of the screen is cleared 
> when I switch the mouse at the very left and right side. I thought at the 
> first case screen may be bigger than x2, not 1/3 because of 4 byte per 
> pixel / 2 byte per pixel. What may be the cause of that artefact?

Sounds like the server may actually be running in 24bpp. Check the log
file.


-- 
Earthling Michel Dänzer      |     Debian (powerpc), X and DRI developer
Libre software enthusiast    |   http://svcs.affero.net/rm.php?r=daenzer



More information about the xorg mailing list