st/xorg: Debug fallbacks for composite as well
authorJakob Bornecrantz <jakob@vmware.com>
Thu, 8 Oct 2009 11:38:34 +0000 (13:38 +0200)
committerJakob Bornecrantz <jakob@vmware.com>
Thu, 8 Oct 2009 11:42:44 +0000 (13:42 +0200)
src/gallium/state_trackers/xorg/xorg_exa.c

index 8920b243079775dbbafb4c1e81232b5ae2872e32..279b551db282496ca4285d485b6508b07d41670b 100644 (file)
@@ -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 *