xfree86: Fix RandR rotation across server generations
245cb8e94f 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>
			
			
This commit is contained in:
		
							parent
							
								
									bfa2a1857a
								
							
						
					
					
						commit
						a551f126cc
					
				| 
						 | 
					@ -808,6 +808,9 @@ xf86CrtcScreenInit (ScreenPtr screen)
 | 
				
			||||||
    config->CloseScreen = screen->CloseScreen;
 | 
					    config->CloseScreen = screen->CloseScreen;
 | 
				
			||||||
    screen->CloseScreen = xf86CrtcCloseScreen;
 | 
					    screen->CloseScreen = xf86CrtcCloseScreen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* This might still be marked wrapped from a previous generation */
 | 
				
			||||||
 | 
					    config->BlockHandler = NULL;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
#ifdef XFreeXDGA
 | 
					#ifdef XFreeXDGA
 | 
				
			||||||
    _xf86_di_dga_init_internal(screen);
 | 
					    _xf86_di_dga_init_internal(screen);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue