If XftGlyphFontSpecRender() (called via XftDrawCharFontSpec()) is given a set of
glyphs which specifies multiple fonts, it assumes that each font has the same
format as the font used for the first glyph, and uses the first font's format
when making the composite request using XRenderCompositeText().
If you mix bitmap (or monochrome) fonts with antialiased fonts, this causes
glyphs to be rendered incorrectly when the font's glyph set is passed to XRender
with the wrong format.
It should use the 'most complicated' format of those presented in the list, but
the Render extension doesn't have the right semantics for doing addition from an
alpha-only picture to an RGBA picture in this case. That means combining
monochrome or simple anti-aliased text with per component text must be done with
a simple alpha-only format.
Actually, it needed to be A8 if mixing ARGB32 with other formats as the
precompositing step inside the server doesn't do the right thing when mixing
ARGB32 with A8.
Mass update: Close all bugs resolved over one year ago.