From 463dd87062edaa974cb8c7163328a53197f237e1 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Thu, 22 Sep 2011 18:38:53 +0300 Subject: xf86/modes: Fix shadow rotation crashing when screen pixmap changes Driver may change screen pixmaps after page flipping that would then make damage lose track of the root pixmap. Using root window for shadow damages fixes the problem because SetWindowPixmap is implemented in shadow code. Signed-off-by: Pauli Nieminen Reviewed-by: Keith Packard Signed-off-by: Keith Packard --- hw/xfree86/modes/xf86Rotate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index 45aabf025..ff7000b5a 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -198,7 +198,7 @@ xf86RotatePrepare (ScreenPtr pScreen) if (!xf86_config->rotation_damage_registered) { /* Hook damage to screen pixmap */ - DamageRegister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, + DamageRegister (&pScreen->root->drawable, xf86_config->rotation_damage); xf86_config->rotation_damage_registered = TRUE; EnableLimitedSchedulingLatency(); @@ -305,7 +305,7 @@ xf86RotateDestroy (xf86CrtcPtr crtc) /* Free damage structure */ if (xf86_config->rotation_damage_registered) { - DamageUnregister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, + DamageUnregister (&pScreen->root->drawable, xf86_config->rotation_damage); xf86_config->rotation_damage_registered = FALSE; DisableLimitedSchedulingLatency(); -- cgit v1.2.3