[PATCH] cache glyphs in the destination format requested to make sure the hardware can use the cached glyphs

Michael Lorenz macallan1888 at gmail.com
Sun Jan 8 22:36:51 UTC 2017


From: Michael Lorenz <macallan at netbsd.org>

Signed-off-by: Michael Lorenz <macallan at netbsd.org>
---
 exa/exa_glyphs.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/exa/exa_glyphs.c b/exa/exa_glyphs.c
index 192a643cc..7386d05e9 100644
--- a/exa/exa_glyphs.c
+++ b/exa/exa_glyphs.c
@@ -544,7 +544,6 @@ exaBufferGlyph(ScreenPtr pScreen,
                INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst)
 {
     ExaScreenPriv(pScreen);
-    unsigned int format = (GetGlyphPicture(pGlyph, pScreen))->format;
     int width = pGlyph->info.width;
     int height = pGlyph->info.height;
     ExaCompositeRectPtr rect;
@@ -554,13 +553,10 @@ exaBufferGlyph(ScreenPtr pScreen,
     if (buffer->count == GLYPH_BUFFER_SIZE)
         return ExaGlyphNeedFlush;
 
-    if (PICT_FORMAT_BPP(format) == 1)
-        format = PICT_a8;
-
     for (i = 0; i < EXA_NUM_GLYPH_CACHES; i++) {
         ExaGlyphCachePtr cache = &pExaScr->glyphCaches[i];
 
-        if (format == cache->format &&
+        if (pDst->format == cache->format &&
             width <= cache->glyphWidth && height <= cache->glyphHeight) {
             ExaGlyphCacheResult result = exaGlyphCacheBufferGlyph(pScreen,
                                                                   &pExaScr->
-- 
2.11.0



More information about the xorg-devel mailing list