summaryrefslogtreecommitdiff
path: root/src/intel_uxa.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-12-30 15:32:40 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-12-30 16:48:52 +0000
commit53fbc9f1760ee481cba1f6dceb9e7c97282a2976 (patch)
tree77ab04daca51090b0ac3e81e33932df5d6b596f2 /src/intel_uxa.c
parent7667ad8432c032aec3a2aa004fc4dfc1877971b3 (diff)
Don't replace the scanout bo through PutImage
As the bo may be pinned for either use by the scanout or through sharing with another application, under those circumstances we cannot replace the bo itself but must force the blit for PutImage. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=31367 Reported-and-tested-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/intel_uxa.c')
-rw-r--r--src/intel_uxa.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/intel_uxa.c b/src/intel_uxa.c
index 3f231ad2..1a591f1d 100644
--- a/src/intel_uxa.c
+++ b/src/intel_uxa.c
@@ -770,7 +770,8 @@ static Bool intel_uxa_put_image(PixmapPtr pixmap,
} else {
ScreenPtr screen = pixmap->drawable.pScreen;
- if (x == 0 && y == 0 &&
+ if (!priv->pinned &&
+ x == 0 && y == 0 &&
w == pixmap->drawable.width &&
h == pixmap->drawable.height)
{
@@ -1101,7 +1102,7 @@ void intel_uxa_create_screen_resources(ScreenPtr screen)
} else {
PixmapPtr pixmap = screen->GetScreenPixmap(screen);
intel_set_pixmap_bo(pixmap, bo);
- intel_get_pixmap_private(pixmap)->busy = 1;
+ intel_get_pixmap_private(pixmap)->pinned = 1;
screen->ModifyPixmapHeader(pixmap,
scrn->virtualX,
scrn->virtualY,