Create a Picture as well as a Pixmap at the time of AllocateGlyph

This avoids some inefficiency in creating a temporary Picture
for every glyph at rendering time. My measurements with an i965
showed the previous patch causing a 10-15% slowdown for NoAccel
and XAA cases, (while providing an 18% speedup for EXA).

With this change, the NoAccel and XAA performance regression is
eliminated, and the overall EXA speedup, (before any of the
glyphs-as-pixmaps work), is now 32%.
This commit is contained in:
Carl Worth 2007-08-02 22:48:32 -07:00
commit 0a71e1542a
5 changed files with 27 additions and 49 deletions

View file

@ -47,7 +47,7 @@ typedef struct _Glyph {
/* per-screen pixmaps follow */
} GlyphRec, *GlyphPtr;
#define GlyphPixmap(glyph) ((PixmapPtr *) ((glyph) + 1))
#define GlyphPicture(glyph) ((PicturePtr *) ((glyph) + 1))
typedef struct _GlyphRef {
CARD32 signature;