diff options
author | Pierre-Loup A. Griffais <pgriffais@nvidia.com> | 2011-11-04 23:26:25 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-11-14 09:14:20 -0800 |
commit | a551f126cc4af7a476d9c8fd0cb309d5aa600d54 (patch) | |
tree | 4eaf13d6e468f28dcc8d377c48b719a505d9533c | |
parent | bfa2a1857a1efda7f171f10e855d200ca0dbcc1a (diff) |
xfree86: Fix RandR rotation across server generations
245cb8e94fd1599 fixed xf86RotateDestroy() to actually run its teardown
code, causing the Damage object to properly be re-allocated after a
server regeneration. However the block that does that still thinks the
Rotate layer BlockHandler is wrapped from the last generation, meaning
the shadow pixmap is never re-allocated and the Damage object is never
re-registered, causing a blank screen, and potentially a driver crash
on the next teardown after the server asks it to free a 0x0 Pixmap.
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | hw/xfree86/modes/xf86Crtc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index aac33d32f..953215196 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -807,6 +807,9 @@ xf86CrtcScreenInit (ScreenPtr screen) config->CloseScreen = screen->CloseScreen; screen->CloseScreen = xf86CrtcCloseScreen; + + /* This might still be marked wrapped from a previous generation */ + config->BlockHandler = NULL; #ifdef XFreeXDGA _xf86_di_dga_init_internal(screen); |