summaryrefslogtreecommitdiff
path: root/src/i830_video.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2006-12-28 12:59:23 -0800
committerEric Anholt <eric@anholt.net>2006-12-28 12:59:37 -0800
commit9cfbf1ceda8f153438df1ba4b1712c55cc872017 (patch)
tree282fa096469ef54f43a0332e5af6e0f8f9b18b37 /src/i830_video.c
parente889bde13dcc2438181a03319e204ae7b9235a78 (diff)
In EXA mode, force backing pixmaps into memory when doing XV to them.
Diffstat (limited to 'src/i830_video.c')
-rw-r--r--src/i830_video.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/i830_video.c b/src/i830_video.c
index b50b21b9..f031a873 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -140,6 +140,11 @@ static Atom xvGamma0, xvGamma1, xvGamma2, xvGamma3, xvGamma4, xvGamma5;
#define OVERLAY_DEBUG if (0) ErrorF
#endif
+/* Oops, I never exported this function in EXA. I meant to. */
+#ifndef exaMoveInPixmap
+void exaMoveInPixmap (PixmapPtr pPixmap);
+#endif
+
/*
* This is more or less the correct way to initalise, update, and shut down
* the overlay. Note OVERLAY_OFF should be used only after disabling the
@@ -2388,6 +2393,13 @@ I830PutImage(ScrnInfoPtr pScrn,
pPixmap = (PixmapPtr)pDraw;
}
+#ifdef I830_USE_EXA
+ if (pI830->useEXA) {
+ /* Force the pixmap into framebuffer so we can draw to it. */
+ exaMoveInPixmap(pPixmap);
+ }
+#endif
+
if (((char *)pPixmap->devPrivate.ptr < (char *)pI830->FbBase) ||
((char *)pPixmap->devPrivate.ptr >= (char *)pI830->FbBase +
pI830->FbMapSize)) {