summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-01-13 20:01:49 -0800
committerKeith Packard <keithp@keithp.com>2009-01-13 20:01:49 -0800
commita4b023c17b9c3bd65fb9466ddb8a953f60244402 (patch)
tree82e2f3e7d03907974155c28c3bfdde1e3980c86a
parentf659cc37e61364a408355b9a6a44d39f4d759935 (diff)
Assign rotation memory dri_bo to rotation pixmap.
As the rotation memory and rotation pixmap are allocated separately (to make rotation at startup work), the allocate dri_bo needs to be set in the pixmap for acceleration to work. This restores the performance in rotated modes. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/i830_display.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/i830_display.c b/src/i830_display.c
index 50fbc4d8..4fba1fb2 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1601,6 +1601,7 @@ static PixmapPtr
i830_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
{
ScrnInfoPtr pScrn = crtc->scrn;
+ I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
I830Ptr pI830 = I830PTR(pScrn);
int rotate_pitch;
PixmapPtr rotate_pixmap;
@@ -1621,6 +1622,8 @@ i830_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Couldn't allocate shadow pixmap for rotated CRTC\n");
}
+ if (intel_crtc->rotate_mem && intel_crtc->rotate_mem->bo)
+ i830_set_pixmap_bo(rotate_pixmap, intel_crtc->rotate_mem->bo);
return rotate_pixmap;
}