xserver: Branch 'server-1.10-branch' - 2 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Wed Aug 10 17:40:41 PDT 2011


 exa/exa_mixed.c               |   23 +++++++++++++----------
 hw/kdrive/ephyr/ephyrdriext.c |    4 ++++
 2 files changed, 17 insertions(+), 10 deletions(-)

New commits:
commit 8dea7ac25a47f111a1f3779b1809cbb7d28b0584
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed Aug 10 11:36:16 2011 +0200

    EXA/mixed: Update sys_pitch in MPH even when there's no system memory copy.
    
    Otherwise sys_pitch will be stale when a system memory copy is allocated.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=38322 and a crash when
    unlocking the screen with xscreensaver, reported by Janne Huttunen.
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    Tested-by: Janne Huttunen <jahuttun at gmail.com>
    Tested-by: Jan Kriho <Erbureth at gmail.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit 4020cab88f5cf3164fc83cf912f94f288aa5a45d)

diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
index fd1afb2..cf01b48 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
@@ -186,17 +186,20 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
         }
 
 	/* Need to re-create system copy if there's also a GPU copy */
-	if (has_gpu_copy && pExaPixmap->sys_ptr) {
-	    free(pExaPixmap->sys_ptr);
-	    pExaPixmap->sys_ptr = NULL;
-	    pExaPixmap->sys_pitch = PixmapBytePad(width, depth);
-	    DamageUnregister(&pPixmap->drawable, pExaPixmap->pDamage);
-	    DamageDestroy(pExaPixmap->pDamage);
-	    pExaPixmap->pDamage = NULL;
-	    RegionEmpty(&pExaPixmap->validSys);
+	if (has_gpu_copy) {
+	    if (pExaPixmap->sys_ptr) {
+		free(pExaPixmap->sys_ptr);
+		pExaPixmap->sys_ptr = NULL;
+		DamageUnregister(&pPixmap->drawable, pExaPixmap->pDamage);
+		DamageDestroy(pExaPixmap->pDamage);
+		pExaPixmap->pDamage = NULL;
+		RegionEmpty(&pExaPixmap->validSys);
 
-	    if (pExaScr->deferred_mixed_pixmap == pPixmap)
-		pExaScr->deferred_mixed_pixmap = NULL;
+		if (pExaScr->deferred_mixed_pixmap == pPixmap)
+		    pExaScr->deferred_mixed_pixmap = NULL;
+	    }
+
+	    pExaPixmap->sys_pitch = PixmapBytePad(width, depth);
 	}
     }
 
commit 179ab444fde028c82f163994508264b28e9f4f57
Author: Julien Cristau <jcristau at debian.org>
Date:   Thu Jul 7 19:18:03 2011 +0200

    Xephyr/dri: register screen and window privates on init
    
    Fixes assertion failure when calling dixSetPrivate
    Debian bug#632549 <http://bugs.debian.org/632549>
    
    Reported-and-tested-by: Mohammed Sameer <msameer at foolab.org>
    Signed-off-by: Julien Cristau <jcristau at debian.org>
    Reviewed-by: Daniel Stone <daniel at fooishbar.org>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit a1dec7cd6adabaf8770dc3b21b0df30ce2f0bc8d)

diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c
index 6945f5b..0bd51b2 100644
--- a/hw/kdrive/ephyr/ephyrdriext.c
+++ b/hw/kdrive/ephyr/ephyrdriext.c
@@ -1394,6 +1394,10 @@ ephyrDRIExtensionInit (ScreenPtr a_screen)
         EPHYR_LOG_ERROR ("failed to register DRI extension\n") ;
         goto out ;
     }
+    if (!dixRegisterPrivateKey(&ephyrDRIScreenKeyRec, PRIVATE_SCREEN, 0))
+        goto out ;
+    if (!dixRegisterPrivateKey(&ephyrDRIWindowKeyRec, PRIVATE_WINDOW, 0))
+        goto out ;
     screen_priv = calloc(1, sizeof (EphyrDRIScreenPrivRec)) ;
     if (!screen_priv) {
         EPHYR_LOG_ERROR ("failed to allocate screen_priv\n") ;


More information about the xorg-commit mailing list