[PATCH 1/2] Only call drmmode_copy_fb (at most) once on server startup

Michel Dänzer michel at daenzer.net
Thu Aug 6 00:38:32 PDT 2015


From: Michel Dänzer <michel.daenzer at amd.com>

It doesn't make sense to copy the screen contents from console when VT
switching back to Xorg or when Xorg resets.

Fixes intermittent artifacts when VT switching back from console to the
gdm login screen.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/radeon_kms.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 14de0eb..c75aa97 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -1037,7 +1037,7 @@ static void RADEONSetupCapabilities(ScrnInfoPtr pScrn)
 /* When the root window is created, initialize the screen contents from
  * console if -background none was specified on the command line
  */
-static Bool RADEONCreateWindow(WindowPtr pWin)
+static Bool RADEONCreateWindow_oneshot(WindowPtr pWin)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
     ScrnInfoPtr pScrn;
@@ -1714,9 +1714,9 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     pScrn->pScreen = pScreen;
 
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
-    if (bgNoneRoot && info->accelOn) {
+    if (serverGeneration == 1 && bgNoneRoot && info->accelOn) {
 	info->CreateWindow = pScreen->CreateWindow;
-	pScreen->CreateWindow = RADEONCreateWindow;
+	pScreen->CreateWindow = RADEONCreateWindow_oneshot;
     }
 #endif
 
@@ -1779,11 +1779,6 @@ Bool RADEONEnterVT_KMS(VT_FUNC_ARGS_DECL)
 
     pScrn->vtSema = TRUE;
 
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 10
-    if (bgNoneRoot && info->accelOn)
-	drmmode_copy_fb(pScrn, &info->drmmode);
-#endif
-
     if (!drmmode_set_desired_modes(pScrn, &info->drmmode, TRUE))
 	return FALSE;
 
-- 
2.5.0



More information about the xorg-driver-ati mailing list