xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Tue May 6 14:54:46 PDT 2008


 hw/xfree86/xaa/xaaInit.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 718652eaf9221e0eeec2c971dd7baa97f827451b
Author: Adam Jackson <ajax at redhat.com>
Date:   Tue May 6 17:52:37 2008 -0400

    Bug #13104: Don't let XAA glyph pixmaps anywhere near video memory.
    
    Since glyphs are stored in pixmaps now, they can make their way into VRAM,
    which invalidates a bunch of fast-path assumptions in the XAA code.  Thus
    you end up doing color-expands or WriteBitmap from la-la land and your
    aliased glyphs go all funny.
    
    Since XAA isn't ever growing the ability to do sane glyph accel, just force
    glyph pixmaps into host memory by catching them at CreatePixmap time.

diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c
index 892cbcf..22a35a0 100644
--- a/hw/xfree86/xaa/xaaInit.c
+++ b/hw/xfree86/xaa/xaaInit.c
@@ -342,7 +342,9 @@ XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usage_hint)
     if (!infoRec->offscreenDepthsInitialized)
 	XAAInitializeOffscreenDepths (pScreen);
 
-    if(pScrn->vtSema && (infoRec->offscreenDepths & (1 << (depth - 1))) &&
+    if(pScrn->vtSema &&
+	(usage_hint != CREATE_PIXMAP_USAGE_GLYPH_PICTURE) &&
+	(infoRec->offscreenDepths & (1 << (depth - 1))) &&
 	(size >= MIN_OFFPIX_SIZE) && !SwitchedOut &&
 	(!infoRec->maxOffPixWidth || (w <= infoRec->maxOffPixWidth)) &&
 	(!infoRec->maxOffPixHeight || (h <= infoRec->maxOffPixHeight)) )


More information about the xorg-commit mailing list