Color Depths

Ben Gamari ben at mw0.ath.cx
Mon Nov 19 21:31:24 PST 2007


Hey all,

In continuing my journey into the X server and supporting components,
I've found a great number of references to color depths of various
types. It seems that the problem I am presently encountering is that
FBConfigs of the correct color depth (24 bits) are not being created.
Presently, all 36 GLXFBConfigs created have a size of 32, e.g.

36 GLXFBConfigs:
Vis  Vis   Visual Trans  buff lev render DB ste  r   g   b   a  aux dep ste  accum buffers  MS   MS
 ID Depth   Type  parent size el   type     reo sz  sz  sz  sz  buf th  ncl  r   g   b   a  num bufs
----------------------------------------------------------------------------------------------------
0x57  0 TrueColor    0     32  0  rgba   0   0   8   8   8   8   0    0  0   0   0   0   0   0   0
...

However, the i830 driver only allows Xorg to start when the default
color depth is 24. If I override the default color depth to 32 in compiz
(by adding a "defaultDepth = 32;" line right before the FBConfig check,
approximately line 2170) compiz starts fine but is unable to map any of
my windows to textures because they use 24 bit visuals. 

If I add 32 to the depth whitelist in xf86-video-intel (just for shits
and giggles), the server comes back with a complain about inconsistent
weights. All in all, the entire thing is quite perplexing, especially
considering not so long ago things worked generally as they should.

I can only conclude that something has a depth wrong. Are my
GLXFBConfigs supposed to be 24 bits if my default depth is 24 bits?
Should my windows by using 32-bit visuals? Under what types of "depths"
take into account the alpha channel? There seems to be great
inconsistency in convention here.

Thanks again for your time,

- Ben



More information about the xorg mailing list