Frame Buffer Driver / FBDEV

bora.sahin at ttnet.net.tr bora.sahin at ttnet.net.tr
Thu Feb 23 11:17:33 PST 2006


Hi,

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..."

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). Firstly which assumptation is true?

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) 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?

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?

Thanks...

Ps: I am using Xorg-6.8.2...

--
Bora SAHIN



More information about the xorg mailing list