summaryrefslogtreecommitdiff
path: root/uxa/uxa.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-28 11:38:05 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-05-28 12:44:34 +0100
commit11581dda99cb2e4ae78fc73be4b02185b3be58ed (patch)
tree50f46de91709f7c8debef43656eab690146bd5a2 /uxa/uxa.c
parent73111cf2a212ee5cc2e03af1c600867df0c55b39 (diff)
uxa: Use a glyph private rather than a hash table.
Store the cache position directly on the glyph using a devPrivate rather than an through auxiliary hash table. x11perf on PineView: 650/638 kglyphs/s -> 701/686 kglyphs/s [aa/rgb] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'uxa/uxa.c')
-rw-r--r--uxa/uxa.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/uxa/uxa.c b/uxa/uxa.c
index 9ea14662..ce03fa07 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -393,6 +393,8 @@ static Bool uxa_close_screen(int i, ScreenPtr pScreen)
ps->Trapezoids = uxa_screen->SavedTrapezoids;
ps->AddTraps = uxa_screen->SavedAddTraps;
ps->Triangles = uxa_screen->SavedTriangles;
+
+ ps->UnrealizeGlyph = uxa_screen->SavedUnrealizeGlyph;
}
#endif
@@ -524,6 +526,9 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
uxa_screen->SavedGlyphs = ps->Glyphs;
ps->Glyphs = uxa_glyphs;
+ uxa_screen->SavedUnrealizeGlyph = ps->UnrealizeGlyph;
+ ps->UnrealizeGlyph = uxa_glyph_unrealize;
+
uxa_screen->SavedTriangles = ps->Triangles;
ps->Triangles = uxa_triangles;