we have entirely too many framebuffer cores in X, 14 at last count: afb, cfb,
cfb16, cfb24, cfb32, fb, lmfcfb, mfb, xf1bpp, xf24_32bpp, xf4bpp, xf8_16bpp,
xf8_32bpp, and xf8_32wid.
the following modules could be eliminated by converting users to fb: *cfb*, mfb,
xf1bpp, xf4bpp, xf24_32bpp. there may be some value in preserving xf4bpp, as it
has some code specific to old IBM 8514 adaptors. the overlay framebuffer cores
- xf8* - are implemented in terms of cfb; these should be converted to fb, but
this might not be trivial. afb seems to be needed for amiga framebuffers; it's
not clear to me that it can be replaced with fb.
i'd like to see the list shrink to afb, fb, and xf8* by 6.9.0, though i might be
convinced to let xf4bpp live.
realvnc (and probably other vnc servers) still depend on cfb, a patch exists at
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
so where do we stand now? right now, xprint still depends on cfb, i believe, as well as sundry drivers which want xf1bpp and xf4bpp.
We've actually made a lot of progress:
afb: Still has issues. mfb-infected. I think the right thing at this point is to implement this in terms of wfb, since the pixel access wrappers there should be good enough to do the planar->packed conversion
cfb: Only Used by xf8_32bpp.
cfb32: Only used by xf8_32bpp.
fb: Exists, now also subclassed as wfb, but in a very polite way so I'm okay with it.
lmfcfb: Long since deleted.
mfb: Exists. Used at compile time by afb, cfb*, and xf1bpp, but not loaded directly by any driver.
xf1bpp: Exists, still used by several drivers. Really ought to disinfect the accelerated drivers of this and xf4.
xf4bpp: Still exists, see xf1bpp.
xf8_16bpp: Rewritten to minimally wrap fb's overlay code.
xf8_32bpp: Still exists. This is the hard one to rewrite, since it's for 8/24 packed overlays, despite the name. I believe only glint and mga use it, so in principle we could just nuke the thing and tell the users of same to cope. Would really like to have bug #4770 addressed in that scenario, since overlay emulation would be really good to have.
And all the non-loadable servers are using fb now (yes, even Xprt). So basically, if we remove the 8/32 users, cfb is dead.
I'm calling this one fixed.