diff options
-rw-r--r-- | src/gallium/state_trackers/xorg/xorg_exa.c | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 8920b243079..279b551db28 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -215,8 +215,12 @@ ExaPrepareAccess(PixmapPtr pPix, int index) #endif PIPE_TRANSFER_READ_WRITE, 0, 0, priv->tex->width[0], priv->tex->height[0]); - if (!priv->map_transfer) + if (!priv->map_transfer) +#ifdef EXA_MIXED_PIXMAPS return FALSE; +#else + FatalError("failed to create transfer\n"); +#endif pPix->devPrivate.ptr = exa->scrn->transfer_map(exa->scrn, priv->map_transfer); @@ -318,7 +322,10 @@ ExaPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) #if DISABLE_ACCEL return FALSE; #else - return xorg_solid_bind_state(exa, priv, fg); + if (xorg_solid_bind_state(exa, priv, fg)) + return TRUE; + else + XORG_FALLBACK("xorg_solid_bind_state failed\n"); #endif } @@ -496,11 +503,14 @@ ExaPrepareComposite(int op, PicturePtr pSrcPicture, (void) exa; return FALSE; #else - return xorg_composite_bind_state(exa, op, pSrcPicture, pMaskPicture, - pDstPicture, - pSrc ? exaGetPixmapDriverPrivate(pSrc) : NULL, - pMask ? exaGetPixmapDriverPrivate(pMask) : NULL, - exaGetPixmapDriverPrivate(pDst)); + if (xorg_composite_bind_state(exa, op, pSrcPicture, pMaskPicture, + pDstPicture, + pSrc ? exaGetPixmapDriverPrivate(pSrc) : NULL, + pMask ? exaGetPixmapDriverPrivate(pMask) : NULL, + exaGetPixmapDriverPrivate(pDst))) + return TRUE; + else + XORG_FALLBACK("xorg_composite_bind_state failed"); #endif } @@ -526,15 +536,17 @@ ExaCheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, PicturePtr pDstPicture) { - boolean accelerated = xorg_composite_accelerated(op, - pSrcPicture, - pMaskPicture, - pDstPicture); -#if DEBUG_PRINT - debug_printf("ExaCheckComposite(%d, %p, %p, %p) = %d\n", - op, pSrcPicture, pMaskPicture, pDstPicture, accelerated); -#endif - return accelerated; + ScreenPtr pScreen = pDstPicture->pDrawable->pScreen; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + modesettingPtr ms = modesettingPTR(pScrn); + + if (xorg_composite_accelerated(op, + pSrcPicture, + pMaskPicture, + pDstPicture)) + return TRUE; + else + XORG_FALLBACK("xorg_composite_accelerated failed"); } static void * |