summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-01-13 20:01:49 -0800
committerZhenyu Wang <zhenyu.z.wang@intel.com>2009-01-14 14:57:08 +0800
commitd994978488648a68ade0d518e5dd40d100e953ed (patch)
tree9d6670447c3ee681a2f5d97c4dec8f93ec7d1961 /src
parent7c5afbbd3e7570224ceb4fa793fe230fd3a383fe (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> (cherry picked from commit a4b023c17b9c3bd65fb9466ddb8a953f60244402)
Diffstat (limited to 'src')
-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 7a9999a2..82a068c0 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1594,6 +1594,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);
unsigned long rotate_pitch;
PixmapPtr rotate_pixmap;
@@ -1614,6 +1615,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;
}