[Qt-embedded-interest] Linux frame buffer and screen resolutions

thomas.cooksey at nokia.com thomas.cooksey at nokia.com
Thu Jun 4 20:54:46 CEST 2009


> The line length provided by ioctl( ,FBIOGET_FSCREENINFO,...,finfo)
> This length is Fixed screen info which maximum supported by device
> finfo.linelength is 1280*2 since max width supported is 1280 pixels
> and number of bytes per line is 1280*2
>
> Where as ( ,FBIOGET_VSCREENINFO,...,vinfo)
> which gives dynamic(variable) screen info in which xres is 720 which
> is the correct value. So while calculating pitch 720*bytes_per_pixel
> is to be considered

What framebuffer driver are you using? The fbdev kernel interface is
designed for fixed-size framebuffers. When you change modes, the size
of the framebuffer remains the same, it's just that you don't use all
of it. Usually there's a kernel/module parameter you can use to set
the size of this framebuffer - but once the module is loaded, it's size
is fixed. That's why the pitch or line step is stored in the fixed data.

It sounds like a bug in your framebuffer driver which is reading the
framebuffer out to the display with a different pitch to what it's
reporting to userspace. Either fix your kerenl driver, or you can easily
work round the bug by patching qscreenlinuxfb_qws.cpp.


Cheers,

Tom




More information about the Qt-embedded-interest mailing list