diff --git a/hw/xgl/xglcmap.c b/hw/xgl/xglcmap.c index 3c7a9747c..69f43cb68 100644 --- a/hw/xgl/xglcmap.c +++ b/hw/xgl/xglcmap.c @@ -288,11 +288,6 @@ xglInitPixmapFormats (ScreenPtr pScreen) 0, NULL, k++); if (format && format->type == GLITZ_FORMAT_TYPE_COLOR) { - /* formats must have an alpha channel, otherwise - filtering wont match the render spec. */ - if (!format->color.alpha_size) - continue; - /* find best matching sufficient format */ if (format->color.red_size >= rs && format->color.green_size >= gs && diff --git a/hw/xgl/xglcomp.c b/hw/xgl/xglcomp.c index 320221c8a..3783af97c 100644 --- a/hw/xgl/xglcomp.c +++ b/hw/xgl/xglcomp.c @@ -170,9 +170,7 @@ xglComp (CARD8 op, if (pSrc->repeat) { /* tile */ - if (!pSrcPriv->acceleratedTile && - (pSrc->pDrawable->width > 1 || - pSrc->pDrawable->height > 1)) + if (!pSrcPriv->acceleratedTile) { pGeometry = xglTiledBoxGeometry ((PixmapPtr) pSrc->pDrawable, diff --git a/hw/xgl/xglglyph.c b/hw/xgl/xglglyph.c index 157dfb6af..d73405854 100644 --- a/hw/xgl/xglglyph.c +++ b/hw/xgl/xglglyph.c @@ -137,9 +137,15 @@ xglGlyphCompareScore (xglAreaPtr pArea, { xglGlyphCachePtr pCache = (xglGlyphCachePtr) pArea->pRoot->closure; GlyphPtr pGlyph = (GlyphPtr) closure2; + xglGlyphAreaPtr pAreaPriv; XGL_GLYPH_PRIV (pCache->pScreen, pGlyph); - GLYPH_AREA_PRIV (pGlyphPriv->pArea); + + /* this shouldn't be needed, seems like a bug in xglarea.c */ + if (!pGlyphPriv->pArea) + return 1; + + pAreaPriv = GLYPH_GET_AREA_PRIV (pGlyphPriv->pArea); if (pAreaPriv->serial != glyphSerialNumber) return 1; diff --git a/hw/xgl/xglpixmap.c b/hw/xgl/xglpixmap.c index 4a49d2411..0f8a0cc4a 100644 --- a/hw/xgl/xglpixmap.c +++ b/hw/xgl/xglpixmap.c @@ -97,11 +97,17 @@ xglPixmapSurfaceInit (PixmapPtr pPixmap, if (width && height) { - if (features & GLITZ_FEATURE_TEXTURE_BORDER_CLAMP_MASK) + if (width == 1 && height == 1) + { + pPixmapPriv->acceleratedTile = TRUE; + } + else if (features & GLITZ_FEATURE_TEXTURE_BORDER_CLAMP_MASK) + { if ((features & GLITZ_FEATURE_TEXTURE_NON_POWER_OF_TWO_MASK) || (POWER_OF_TWO (width) && POWER_OF_TWO (height))) pPixmapPriv->acceleratedTile = TRUE; - + } + pPixmapPriv->target = xglPixmapTargetOut; /* diff --git a/hw/xgl/xglwindow.c b/hw/xgl/xglwindow.c index 2a4bb9ae1..5683fb1e2 100644 --- a/hw/xgl/xglwindow.c +++ b/hw/xgl/xglwindow.c @@ -120,19 +120,6 @@ xglCopyWindow (WindowPtr pWin, REGION_INTERSECT (pWin->drawable.pScreen, &rgnDst, &pWin->borderClip, prgnSrc); -#ifdef COMPOSITE - if (pPixmap->screen_x || pPixmap->screen_y) - { - REGION_TRANSLATE (pWin->drawable.pScreen, &rgnDst, - -pPixmap->screen_x, -pPixmap->screen_y); - - box.x1 -= pPixmap->screen_x; - box.y1 -= pPixmap->screen_y; - box.x2 -= pPixmap->screen_x; - box.y2 -= pPixmap->screen_y; - } -#endif - fbCopyRegion (&pWin->drawable, &pWin->drawable, 0, &rgnDst, dx, dy, xglCopyProc, 0, (void *) &box);