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