Bug 11721 - 32bits framebuffer and Xfbdev
Summary: 32bits framebuffer and Xfbdev
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: unspecified
Hardware: ARM Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL: http://www.purplelabs.com
Depends on:
Reported: 2007-07-25 03:24 UTC by Mickael Istria
Modified: 2018-06-11 19:22 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Description Mickael Istria 2007-07-25 03:24:09 UTC

I was trying to install Xfbdev (from Xorg-server-1.2.0) on a 32-bits framebuffer with 8 bits masks for each channel. It is due to hardware specification.
31..24 -> b
23..16 -> g
15..8 -> r
7..0 -> a

I didn't have any problem at install, but a Segfault while building colormap at execution.

Indeed, in fbdev.c, we can see a bloc #ifdef FBDEV_KLUDGE_FORMAT which modifies color masks (especially for red where mask becomes 0xFFFF instead of OxFF00).
This modification implies an out of memory acces in dix/colormap.c around line 313. The 'size' value, which should be red depth (ie 256) is 65536 because of previous modification.

If a delete the block between #ifdef FBDEV_KLUDGE_FORMAT, output initialization goes on successfully, but I got a SegFault in Xrender (as explained in fbdev.c)

It seems to be a real incompatibility with 32bits framebuffers with alpha channel on low-bits, but I don't have time to study Xrender and submit a patch.
Sorry and thank you!
Comment 1 Jesse Adkins 2010-11-30 19:35:50 UTC
Is this still an issue for you on a newer xserver? If so, can you provide a log with backtrace from the segfault to help with fixing this issue? Maybe a patch to show exactly what you did?
Comment 2 Adam Jackson 2018-06-11 19:22:32 UTC
Xfbdev isn't a thing anymore.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.