Test case attached.
the draw() function sets a 0.0-1.0, 0.0-1.0 user-space, selects a font_face and
forgets to set the font_size (I guess it defaults to a value like 10?).
The png backend works OK, draws part of the large font and clips the rest.
The xlib backend crashes.
Created attachment 3152 [details]
a test case
*** Bug 13266 has been marked as a duplicate of this bug. ***
Author: Chris Wilson <firstname.lastname@example.org>
Date: Fri Apr 4 17:46:54 2008 +0100
[xlib] Avoiding sending glyphs > XMaxRequestSize.
XRenderAddGlyph() does not split its image data across multiple requests
and so the glyph surface must be smaller than XMaxRequestSize or else
the server will disconnect the client, causing "Fatal IO error 104".
As this will require an extension to the XRender spec, we can work
around the issue by using our fallbacks if we detect that the glyph will
be too large for a single request.
See bugs https://bugs.freedesktop.org/show_bug.cgi?id=4339 and
http://bugs.freedesktop.org/show_bug.cgi?id=13266 for examples.
FWIW, I looked into this again, and I can reproduce it only if the glyph is larger than 16M. That's 256 times the max request size. Hardcoding it in there. One should track this down into xrender implementation and fix it there.
Xrender uses BigRequest extension for AddGlyphs, if available. Seems like we are hitting the max bigreq size. Trying to find API for that.
Author: Behdad Esfahbod <email@example.com>
Date: Fri May 23 19:04:13 2008 -0400
[cairo-xlib] Fix max-request size calculations
First, XMaxRequestSize returns number of 4-byte words. So multiply by 4 is
needed in all uses. Next, XRenderAddGlyphs uses BIG-REQUEST extension if
available, so when checking for glyph size overflow, we should use
Also use the right format when calculating glyph size.
See bug #4339 for history.