xf86-video-modesetting: src/exa.c

Alan Hourihane alanh at kemper.freedesktop.org
Thu Jun 26 14:47:34 PDT 2008


 src/exa.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 4c0a438f937bf8e473e8e2c120d9702cdf39ddb8
Author: Alan Hourihane <alanh at tungstengraphics.com>
Date:   Thu Jun 26 22:47:20 2008 +0100

    Fix copy surface

diff --git a/src/exa.c b/src/exa.c
index 124dc03..cab6870 100644
--- a/src/exa.c
+++ b/src/exa.c
@@ -504,6 +504,7 @@ ExaPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir,
     struct exa_entity *exa = ms->exa;
     struct pipe_surface *src_surf;
     struct PixmapPriv *priv = exaGetPixmapDriverPrivate(pDstPixmap);
+    struct PixmapPriv *src_priv = exaGetPixmapDriverPrivate(pSrcPixmap);
 
     if (alu != GXcopy)
 	return FALSE;
@@ -514,14 +515,14 @@ ExaPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir,
     if (!EXA_PM_IS_SOLID(&pSrcPixmap->drawable, planeMask))
 	return FALSE;
 
-    if (!priv->tex)
+    if (!priv->tex || !src_priv->tex)
 	return FALSE;
 
     if (!exa->ctx || !exa->ctx->surface_copy)
 	return FALSE;
 
     priv->src_surf =
-	exa->scrn->get_tex_surface(exa->scrn, priv->tex, 0, 0, 0,
+	exa->scrn->get_tex_surface(exa->scrn, src_priv->tex, 0, 0, 0,
 				   PIPE_BUFFER_USAGE_GPU_READ |
 				   PIPE_BUFFER_USAGE_GPU_WRITE);
 
@@ -691,7 +692,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
     PixmapPtr rootPixmap = pScreen->GetScreenPixmap(pScreen);
     struct exa_entity *exa = ms->exa;
 
-    /*if (rootPixmap == pPixmap) */  {
+    if (rootPixmap == pPixmap) {
 	miModifyPixmapHeader(pPixmap, width, height, depth,
 			     bitsPerPixel, devKind, NULL);
     }


More information about the xorg-commit mailing list