[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/changelog                         |   12 ++
 debian/patches/xf86-detach-scanout.patch |   12 ++
 debian/patches/xmir.patch                |  128 +++++++++++++++----------------
 debian/rules                             |    2 
 4 files changed, 91 insertions(+), 63 deletions(-)

New commits:
commit 862fbb4f27aa81446db9856fc67196c691bcf673
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Wed Aug 7 11:03:32 2013 +1000

    Fold in Maarten's fixes; fixing the name of xserver-xorg-xmir along the way

diff --git a/debian/changelog b/debian/changelog
index 360d349..693597c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,12 @@
 xorg-server (2:1.14.2-0ubuntu9) saucy; urgency=low
 
-  * Fix damage reporting (LP: 1206744)?
+  [ Maarten Lankhorst ]
+  * Fix crash in RRCrtcDetachScanoutPixmap.
+  * Add xmir module to xserver-xorg-core-dbg.
+  * Fix xf86DeleteDriver infinite loop. (LP: 1208715)
+
+  [ Christopher James Halse Rogers ]
+  * Fix damage reporting (LP: 1206744)
 
  -- Christopher James Halse Rogers <raof@ubuntu.com>  Tue, 06 Aug 2013 16:11:47 +1000
 
diff --git a/debian/patches/xf86-detach-scanout.patch b/debian/patches/xf86-detach-scanout.patch
index b994845..4c7f248 100644
--- a/debian/patches/xf86-detach-scanout.patch
+++ b/debian/patches/xf86-detach-scanout.patch
@@ -73,3 +73,15 @@ Dave, does this seem like a reasonable way to work around this particular crash?
              config->randr_provider->output_source = NULL;
              RRSetChanged(screen);
              detached = TRUE;
+--- a/randr/rrcrtc.c
++++ b/randr/rrcrtc.c
+@@ -367,6 +367,9 @@
+     PixmapPtr mscreenpix;
+     rrScrPriv(crtc->pScreen);
+ 
++   if (!crtc->scanout_pixmap)
++        return;
++
+     mscreenpix = master->GetScreenPixmap(master);
+ 
+     ret = pScrPriv->rrCrtcSetScanoutPixmap(crtc, NULL);
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 795e147..58e5486 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,7 +1,7 @@
-Index: xserver/configure.ac
+Index: xorg-server/configure.ac
 ===================================================================
---- xserver.orig/configure.ac	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/configure.ac	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/configure.ac	2013-08-06 13:15:53.451098539 +0000
++++ xorg-server/configure.ac	2013-08-06 13:15:53.579296059 +0000
 @@ -639,6 +639,7 @@
  AC_ARG_ENABLE(libdrm,         AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes])
  AC_ARG_ENABLE(clientids,      AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes])
@@ -34,10 +34,10 @@ Index: xserver/configure.ac
  hw/dmx/config/Makefile
  hw/dmx/config/man/Makefile
  hw/dmx/doc/Makefile
-Index: xserver/hw/xfree86/Makefile.am
+Index: xorg-server/hw/xfree86/Makefile.am
 ===================================================================
---- xserver.orig/hw/xfree86/Makefile.am	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/Makefile.am	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/hw/xfree86/Makefile.am	2013-08-06 13:14:07.176406286 +0000
++++ xorg-server/hw/xfree86/Makefile.am	2013-08-06 13:15:53.579496055 +0000
 @@ -25,15 +25,20 @@
  INT10_SUBDIR = int10
  endif
@@ -61,10 +61,10 @@ Index: xserver/hw/xfree86/Makefile.am
  
  bin_PROGRAMS = Xorg
  nodist_Xorg_SOURCES = sdksyms.c
-Index: xserver/hw/xfree86/common/xf86Config.c
+Index: xorg-server/hw/xfree86/common/xf86Config.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/common/xf86Config.c	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/hw/xfree86/common/xf86Config.c	2013-08-06 13:15:53.364100222 +0000
++++ xorg-server/hw/xfree86/common/xf86Config.c	2013-08-06 13:15:53.579996045 +0000
 @@ -117,6 +117,7 @@
      {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
      {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
@@ -91,10 +91,10 @@ Index: xserver/hw/xfree86/common/xf86Config.c
      if (xf86configptr->conf_modules) {
          /* Walk the disable list and let people know what we've parsed to
           * not be loaded 
-Index: xserver/hw/xfree86/common/xf86Globals.c
+Index: xorg-server/hw/xfree86/common/xf86Globals.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/hw/xfree86/common/xf86Globals.c	2013-08-06 13:15:53.372900052 +0000
++++ xorg-server/hw/xfree86/common/xf86Globals.c	2013-08-06 13:15:53.580196041 +0000
 @@ -206,3 +206,6 @@
  #endif
  RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
@@ -102,10 +102,10 @@ Index: xserver/hw/xfree86/common/xf86Globals.c
 +Bool xorgMir = FALSE;
 +const char *mirID = NULL;
 +const char *mirSocket = NULL;
-Index: xserver/hw/xfree86/common/xf86Init.c
+Index: xorg-server/hw/xfree86/common/xf86Init.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/common/xf86Init.c	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/hw/xfree86/common/xf86Init.c	2013-08-06 13:15:53.470098171 +0000
++++ xorg-server/hw/xfree86/common/xf86Init.c	2013-08-06 13:16:03.163310647 +0000
 @@ -554,7 +554,7 @@
           * needed at this early stage.
           */
@@ -136,20 +136,23 @@ Index: xserver/hw/xfree86/common/xf86Init.c
          }
  
          if (xorgHWOpenConsole)
-@@ -662,9 +671,11 @@
+@@ -662,9 +671,13 @@
          }
  
          /* Remove (unload) drivers that are not required */
 -        for (i = 0; i < xf86NumDrivers; i++)
+-            if (xf86DriverList[i] && xf86DriverList[i]->refCount <= 0)
 +        for (i = 0; i < xf86NumDrivers; )
-             if (xf86DriverList[i] && xf86DriverList[i]->refCount <= 0)
++            if (xf86DriverList[i] &&
++                !xf86DriverHasEntities(xf86DriverList[i]) &&
++                xf86DriverList[i]->refCount <= 0)
                  xf86DeleteDriver(i);
 +            else
 +                i++;
  
          /*
           * At this stage we know how many screens there are.
-@@ -1490,6 +1501,17 @@
+@@ -1490,6 +1503,17 @@
          xf86Info.ShareVTs = TRUE;
          return 1;
      }
@@ -167,7 +170,7 @@ Index: xserver/hw/xfree86/common/xf86Init.c
  
      /* OS-specific processing */
      return xf86ProcessArgument(argc, argv, i);
-@@ -1563,6 +1585,8 @@
+@@ -1563,6 +1587,8 @@
      ErrorF
          ("-novtswitch            don't automatically switch VT at reset & exit\n");
      ErrorF("-sharevts              share VTs with another X server\n");
@@ -176,10 +179,10 @@ Index: xserver/hw/xfree86/common/xf86Init.c
      /* OS-specific usage */
      xf86UseMsg();
      ErrorF("\n");
-Index: xserver/hw/xfree86/common/xf86Priv.h
+Index: xorg-server/hw/xfree86/common/xf86Priv.h
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-06 16:04:22.783155913 +1000
+--- xorg-server.orig/hw/xfree86/common/xf86Priv.h	2013-08-06 13:15:53.373400042 +0000
++++ xorg-server/hw/xfree86/common/xf86Priv.h	2013-08-06 13:15:53.580696032 +0000
 @@ -93,6 +93,9 @@
  extern _X_EXPORT const char *xf86VisualNames[];
  extern _X_EXPORT int xf86Verbose;       /* verbosity level */
@@ -190,10 +193,10 @@ Index: xserver/hw/xfree86/common/xf86Priv.h
  
  extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable;
  
-Index: xserver/hw/xfree86/xmir/Makefile.am
+Index: xorg-server/hw/xfree86/xmir/Makefile.am
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/Makefile.am	2013-08-06 13:15:53.580796030 +0000
 @@ -0,0 +1,26 @@
 +INCLUDES =					\
 +	$(XORG_INCS)                            \
@@ -221,10 +224,10 @@ Index: xserver/hw/xfree86/xmir/Makefile.am
 +	xmir-private.h
 +
 +sdk_HEADERS = xmir.h
-Index: xserver/hw/xfree86/xmir/xmir-output.c
+Index: xorg-server/hw/xfree86/xmir/xmir-output.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/xmir-output.c	2013-08-06 13:15:53.580996026 +0000
 @@ -0,0 +1,225 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -451,10 +454,10 @@ Index: xserver/hw/xfree86/xmir/xmir-output.c
 +  
 +    return TRUE;
 +}
-Index: xserver/hw/xfree86/xmir/xmir-private.h
+Index: xorg-server/hw/xfree86/xmir/xmir-private.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/xmir-private.h	2013-08-06 13:15:53.581096024 +0000
 @@ -0,0 +1,90 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -546,10 +549,10 @@ Index: xserver/hw/xfree86/xmir/xmir-private.h
 +xmir_process_from_eventloop(void);
 +
 + #endif /* _MIR_PRIVATE_H */
-Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
+Index: xorg-server/hw/xfree86/xmir/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-06 13:15:53.581196022 +0000
 @@ -0,0 +1,117 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -668,10 +671,10 @@ Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
 +	}
 +}
 +
-Index: xserver/hw/xfree86/xmir/xmir-window.c
+Index: xorg-server/hw/xfree86/xmir/xmir-window.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/xmir-window.c	2013-08-06 13:15:53.581496016 +0000
 @@ -0,0 +1,325 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -998,10 +1001,10 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 +
 +    return TRUE;
 +}
-Index: xserver/hw/xfree86/xmir/xmir.c
+Index: xorg-server/hw/xfree86/xmir/xmir.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.c	2013-08-06 16:04:44.027154966 +1000
++++ xorg-server/hw/xfree86/xmir/xmir.c	2013-08-06 13:15:53.581696012 +0000
 @@ -0,0 +1,216 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1219,10 +1222,10 @@ Index: xserver/hw/xfree86/xmir/xmir.c
 +xMirTeardown(pointer module)
 +{
 +}
-Index: xserver/hw/xfree86/xmir/xmir.h
+Index: xorg-server/hw/xfree86/xmir/xmir.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.h	2013-08-06 16:04:22.787155913 +1000
++++ xorg-server/hw/xfree86/xmir/xmir.h	2013-08-06 13:15:53.581796010 +0000
 @@ -0,0 +1,95 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1319,10 +1322,10 @@ Index: xserver/hw/xfree86/xmir/xmir.h
 +xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_handle_window_damage_proc callback);
 +
 +#endif /* _XMIR_H */
-Index: xserver/include/list.h
+Index: xorg-server/include/list.h
 ===================================================================
---- xserver.orig/include/list.h	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/include/list.h	2013-08-06 16:04:22.787155913 +1000
+--- xorg-server.orig/include/list.h	2013-08-06 13:14:07.183506153 +0000
++++ xorg-server/include/list.h	2013-08-06 13:15:53.581996006 +0000
 @@ -184,6 +184,14 @@
      prev->next = next;
  }
@@ -1338,10 +1341,10 @@ Index: xserver/include/list.h
  /**
   * Remove the element from the list it is in. Using this function will reset
   * the pointers to/from this element so it is removed from the list. It does
-Index: xserver/include/xorg-server.h.in
+Index: xorg-server/include/xorg-server.h.in
 ===================================================================
---- xserver.orig/include/xorg-server.h.in	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/include/xorg-server.h.in	2013-08-06 16:04:22.791155913 +1000
+--- xorg-server.orig/include/xorg-server.h.in	2013-08-06 13:14:07.191006013 +0000
++++ xorg-server/include/xorg-server.h.in	2013-08-06 13:15:53.582096004 +0000
 @@ -212,4 +212,7 @@
  #define _XSERVER64 1
  #endif
@@ -1350,10 +1353,10 @@ Index: xserver/include/xorg-server.h.in
 +#undef XMIR
 +
  #endif /* _XORG_SERVER_H_ */
-Index: xserver/miext/damage/damage.c
+Index: xorg-server/miext/damage/damage.c
 ===================================================================
---- xserver.orig/miext/damage/damage.c	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/miext/damage/damage.c	2013-08-06 16:04:22.791155913 +1000
+--- xorg-server.orig/miext/damage/damage.c	2013-08-06 13:14:07.207005715 +0000
++++ xorg-server/miext/damage/damage.c	2013-08-06 13:15:53.582495997 +0000
 @@ -123,18 +123,14 @@
  damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
                                  RegionPtr pDamageRegion)
@@ -1412,10 +1415,10 @@ Index: xserver/miext/damage/damage.c
  }
  
  #if DAMAGE_DEBUG_ENABLE
-Index: xserver/test/Makefile.am
+Index: xorg-server/test/Makefile.am
 ===================================================================
---- xserver.orig/test/Makefile.am	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/test/Makefile.am	2013-08-06 16:04:22.791155913 +1000
+--- xorg-server.orig/test/Makefile.am	2013-08-06 13:14:07.219605480 +0000
++++ xorg-server/test/Makefile.am	2013-08-06 13:15:53.582695993 +0000
 @@ -6,7 +6,12 @@
  # For now, requires xf86 ddx, could be adjusted to use another
  SUBDIRS += xi2
@@ -1439,10 +1442,10 @@ Index: xserver/test/Makefile.am
  
  libxservertest_la_LIBADD = $(XSERVER_LIBS)
  if XORG
-Index: xserver/test/xmir-thread-proxy.c
+Index: xorg-server/test/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/test/xmir-thread-proxy.c	2013-08-06 16:04:22.791155913 +1000
++++ xorg-server/test/xmir-thread-proxy.c	2013-08-06 13:15:53.582795991 +0000
 @@ -0,0 +1,154 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1598,10 +1601,10 @@ Index: xserver/test/xmir-thread-proxy.c
 +	xmir_test_many_threads_to_eventloop();
 +	xmir_test_refuses_to_marshall_too_large_msg();
 +}
-Index: xserver/hw/xfree86/common/xf86Helper.c
+Index: xorg-server/hw/xfree86/common/xf86Helper.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-06 16:04:22.795155912 +1000
-+++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-06 16:04:22.791155913 +1000
+--- xorg-server.orig/hw/xfree86/common/xf86Helper.c	2013-08-06 13:15:53.300101460 +0000
++++ xorg-server/hw/xfree86/common/xf86Helper.c	2013-08-06 13:15:53.583195983 +0000
 @@ -100,7 +100,14 @@
          if (xf86DriverList[drvIndex]->module)
              UnloadModule(xf86DriverList[drvIndex]->module);
diff --git a/debian/rules b/debian/rules
index 8ce4cd7..931571e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -366,7 +366,7 @@ endif
 	dh_installdebconf -s
 	dh_installman -s
 	dh_link -s
-	dh_strip -pxserver-xorg-core --dbg-package=xserver-xorg-core-dbg
+	dh_strip -pxserver-xorg-xmir -pxserver-xorg-core --dbg-package=xserver-xorg-core-dbg
 	dh_strip -s -Nxserver-xorg-core -Nxserver-xorg-core-dbg
 	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-deb
 

commit 12e7dceca2990151e38d886fa9a18d4cce9d1d6a
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Tue Aug 6 16:11:57 2013 +1000

    Fix damage reporting for XMir

diff --git a/debian/changelog b/debian/changelog
index 7a2c56e..360d349 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.14.2-0ubuntu9) saucy; urgency=low
+
+  * Fix damage reporting (LP: 1206744)?
+
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Tue, 06 Aug 2013 16:11:47 +1000
+
 xorg-server (2:1.14.2-0ubuntu8) saucy; urgency=low
 
   * Don't build XMir on AArch64.
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 71f80a4..795e147 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,7 +1,7 @@
 Index: xserver/configure.ac
 ===================================================================
---- xserver.orig/configure.ac	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/configure.ac	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/configure.ac	2013-08-06 16:04:22.795155912 +1000
++++ xserver/configure.ac	2013-08-06 16:04:22.783155913 +1000
 @@ -639,6 +639,7 @@
  AC_ARG_ENABLE(libdrm,         AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes])
  AC_ARG_ENABLE(clientids,      AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes])
@@ -36,8 +36,8 @@ Index: xserver/configure.ac
  hw/dmx/doc/Makefile
 Index: xserver/hw/xfree86/Makefile.am
 ===================================================================
---- xserver.orig/hw/xfree86/Makefile.am	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/Makefile.am	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/hw/xfree86/Makefile.am	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/Makefile.am	2013-08-06 16:04:22.783155913 +1000
 @@ -25,15 +25,20 @@
  INT10_SUBDIR = int10
  endif
@@ -63,8 +63,8 @@ Index: xserver/hw/xfree86/Makefile.am
  nodist_Xorg_SOURCES = sdksyms.c
 Index: xserver/hw/xfree86/common/xf86Config.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/common/xf86Config.c	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/common/xf86Config.c	2013-08-06 16:04:22.783155913 +1000
 @@ -117,6 +117,7 @@
      {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
      {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
@@ -93,8 +93,8 @@ Index: xserver/hw/xfree86/common/xf86Config.c
           * not be loaded 
 Index: xserver/hw/xfree86/common/xf86Globals.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-06 16:04:22.783155913 +1000
 @@ -206,3 +206,6 @@
  #endif
  RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
@@ -104,8 +104,8 @@ Index: xserver/hw/xfree86/common/xf86Globals.c
 +const char *mirSocket = NULL;
 Index: xserver/hw/xfree86/common/xf86Init.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/common/xf86Init.c	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/common/xf86Init.c	2013-08-06 16:04:22.783155913 +1000
 @@ -554,7 +554,7 @@
           * needed at this early stage.
           */
@@ -178,8 +178,8 @@ Index: xserver/hw/xfree86/common/xf86Init.c
      ErrorF("\n");
 Index: xserver/hw/xfree86/common/xf86Priv.h
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-02 17:45:27.671768903 +1000
+--- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-06 16:04:22.783155913 +1000
 @@ -93,6 +93,9 @@
  extern _X_EXPORT const char *xf86VisualNames[];
  extern _X_EXPORT int xf86Verbose;       /* verbosity level */
@@ -193,7 +193,7 @@ Index: xserver/hw/xfree86/common/xf86Priv.h
 Index: xserver/hw/xfree86/xmir/Makefile.am
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-02 17:45:27.671768903 +1000
++++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-06 16:04:22.787155913 +1000
 @@ -0,0 +1,26 @@
 +INCLUDES =					\
 +	$(XORG_INCS)                            \
@@ -224,7 +224,7 @@ Index: xserver/hw/xfree86/xmir/Makefile.am
 Index: xserver/hw/xfree86/xmir/xmir-output.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-02 17:45:27.671768903 +1000
++++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-06 16:04:22.787155913 +1000
 @@ -0,0 +1,225 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -454,7 +454,7 @@ Index: xserver/hw/xfree86/xmir/xmir-output.c
 Index: xserver/hw/xfree86/xmir/xmir-private.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-02 17:45:27.671768903 +1000
++++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-06 16:04:22.787155913 +1000
 @@ -0,0 +1,90 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -549,7 +549,7 @@ Index: xserver/hw/xfree86/xmir/xmir-private.h
 Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-02 17:45:27.671768903 +1000
++++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-06 16:04:22.787155913 +1000
 @@ -0,0 +1,117 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -671,8 +671,8 @@ Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
 Index: xserver/hw/xfree86/xmir/xmir-window.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-02 19:41:11.403465612 +1000
-@@ -0,0 +1,323 @@
++++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-06 16:04:22.787155913 +1000
+@@ -0,0 +1,325 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
 + *
@@ -800,14 +800,15 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 +    mir_win->has_free_buffer = FALSE;
 +    mir_surface_swap_buffers(mir_win->surface, &handle_buffer_received, win);
 +
-+    xorg_list_del(&mir_win->link_damage);
-+
 +    tracking = damage_region_for_current_buffer(mir_win);
 +    if (region == NULL)
 +        RegionEmpty(tracking);
 +    else
 +        RegionSubtract(tracking, tracking, region);
 +
++    if (RegionNil(tracking))
++        xorg_list_del(&mir_win->link_damage);
++
 +    return Success;
 +}
 +
@@ -824,9 +825,10 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 +{
 +    xmir_window *xmir_win = xmir_window_get(win);
 +
-+    if (!xmir_win->damaged)
++    if (xorg_list_is_empty(&xmir_win->link_damage))
 +	    return (RegionPtr)&xmir_empty_region;
-+    else {
++
++    if (xmir_win->damaged) {
 +	    RegionPtr damage = DamageRegion(xmir_win->damage);
 +	    int i;
 +
@@ -999,8 +1001,8 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 Index: xserver/hw/xfree86/xmir/xmir.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.c	2013-08-02 17:45:27.675768903 +1000
-@@ -0,0 +1,217 @@
++++ xserver/hw/xfree86/xmir/xmir.c	2013-08-06 16:04:44.027154966 +1000
+@@ -0,0 +1,216 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
 + *
@@ -1156,9 +1158,8 @@ Index: xserver/hw/xfree86/xmir/xmir.c
 +{
 +    xmir_window *xmir_win, *tmp_win;
 +    xorg_list_for_each_entry_safe(xmir_win, tmp_win, &xmir->damage_list, link_damage) {
-+        (*callback)(xmir_win->win);
-+        if(!xmir_window_is_dirty(xmir_win->win))
-+            xorg_list_del(&xmir_win->link_damage);
++        if(xmir_window_is_dirty(xmir_win->win))
++            (*callback)(xmir_win->win);
 +    }
 +}
 +
@@ -1221,7 +1222,7 @@ Index: xserver/hw/xfree86/xmir/xmir.c
 Index: xserver/hw/xfree86/xmir/xmir.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.h	2013-08-02 17:45:27.675768903 +1000
++++ xserver/hw/xfree86/xmir/xmir.h	2013-08-06 16:04:22.787155913 +1000
 @@ -0,0 +1,95 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1320,8 +1321,8 @@ Index: xserver/hw/xfree86/xmir/xmir.h
 +#endif /* _XMIR_H */
 Index: xserver/include/list.h
 ===================================================================
---- xserver.orig/include/list.h	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/include/list.h	2013-08-02 17:45:27.675768903 +1000
+--- xserver.orig/include/list.h	2013-08-06 16:04:22.795155912 +1000
++++ xserver/include/list.h	2013-08-06 16:04:22.787155913 +1000
 @@ -184,6 +184,14 @@
      prev->next = next;
  }
@@ -1339,8 +1340,8 @@ Index: xserver/include/list.h
   * the pointers to/from this element so it is removed from the list. It does
 Index: xserver/include/xorg-server.h.in
 ===================================================================
---- xserver.orig/include/xorg-server.h.in	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/include/xorg-server.h.in	2013-08-02 17:45:27.675768903 +1000
+--- xserver.orig/include/xorg-server.h.in	2013-08-06 16:04:22.795155912 +1000
++++ xserver/include/xorg-server.h.in	2013-08-06 16:04:22.791155913 +1000
 @@ -212,4 +212,7 @@
  #define _XSERVER64 1
  #endif
@@ -1351,8 +1352,8 @@ Index: xserver/include/xorg-server.h.in
  #endif /* _XORG_SERVER_H_ */
 Index: xserver/miext/damage/damage.c
 ===================================================================
---- xserver.orig/miext/damage/damage.c	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/miext/damage/damage.c	2013-08-02 17:45:27.675768903 +1000
+--- xserver.orig/miext/damage/damage.c	2013-08-06 16:04:22.795155912 +1000
++++ xserver/miext/damage/damage.c	2013-08-06 16:04:22.791155913 +1000
 @@ -123,18 +123,14 @@
  damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
                                  RegionPtr pDamageRegion)
@@ -1413,8 +1414,8 @@ Index: xserver/miext/damage/damage.c
  #if DAMAGE_DEBUG_ENABLE
 Index: xserver/test/Makefile.am
 ===================================================================
---- xserver.orig/test/Makefile.am	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/test/Makefile.am	2013-08-02 17:45:27.675768903 +1000
+--- xserver.orig/test/Makefile.am	2013-08-06 16:04:22.795155912 +1000
++++ xserver/test/Makefile.am	2013-08-06 16:04:22.791155913 +1000
 @@ -6,7 +6,12 @@
  # For now, requires xf86 ddx, could be adjusted to use another
  SUBDIRS += xi2
@@ -1441,7 +1442,7 @@ Index: xserver/test/Makefile.am
 Index: xserver/test/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/test/xmir-thread-proxy.c	2013-08-02 17:45:27.675768903 +1000
++++ xserver/test/xmir-thread-proxy.c	2013-08-06 16:04:22.791155913 +1000
 @@ -0,0 +1,154 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1599,8 +1600,8 @@ Index: xserver/test/xmir-thread-proxy.c
 +}
 Index: xserver/hw/xfree86/common/xf86Helper.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-02 17:45:27.679768902 +1000
-+++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-02 17:45:27.675768903 +1000
+--- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-06 16:04:22.795155912 +1000
++++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-06 16:04:22.791155913 +1000
 @@ -100,7 +100,14 @@
          if (xf86DriverList[drvIndex]->module)
              UnloadModule(xf86DriverList[drvIndex]->module);


Reply to: