Mesa (master): st/xorg: Debug fallbacks for composite as well

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Fri Oct 9 18:59:45 UTC 2009


Module: Mesa
Branch: master
Commit: 5080e8bea6ae5cdb116023a5e2d8dbbb762bd69d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5080e8bea6ae5cdb116023a5e2d8dbbb762bd69d

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Thu Oct  8 13:38:34 2009 +0200

st/xorg: Debug fallbacks for composite as well

---

 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 8920b24..279b551 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 *




More information about the mesa-commit mailing list