From 621fa337fb53d535f53cec30bb7161801001bb7f Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Thu, 26 Jun 2008 22:47:20 +0100 Subject: [PATCH] Fix copy surface --- hw/xfree86/drivers/modesetting/exa.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/drivers/modesetting/exa.c b/hw/xfree86/drivers/modesetting/exa.c index 124dc03bc..cab68709f 100644 --- a/hw/xfree86/drivers/modesetting/exa.c +++ b/hw/xfree86/drivers/modesetting/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); }