[PATCH 2/3] composite: Automatically enable backing store support on the screen

Adam Jackson ajax at redhat.com
Thu Sep 12 09:04:14 PDT 2013


... unless you explicitly disabled it with -bs on the command line, or
with the corresponding thing in xorg.conf.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 composite/compinit.c           | 9 +++++----
 hw/xfree86/common/xf86Helper.c | 5 +++++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/composite/compinit.c b/composite/compinit.c
index bc1130e..2001c8a 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -115,13 +115,11 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
     pScreen->ChangeWindowAttributes = cs->ChangeWindowAttributes;
     ret = pScreen->ChangeWindowAttributes(pWin, mask);
 
-    if (ret && (mask & CWBackingStore) &&
-        pScreen->backingStoreSupport != NotUseful) {
+    if (ret && (mask & CWBackingStore)) {
         if (pWin->backingStore != NotUseful) {
             compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
             pWin->backStorage = (pointer) (intptr_t) 1;
-        }
-        else {
+        } else {
             compUnredirectWindow(serverClient, pWin,
                                  CompositeRedirectAutomatic);
             pWin->backStorage = NULL;
@@ -355,6 +353,9 @@ compScreenInit(ScreenPtr pScreen)
         return FALSE;
     }
 
+    if (!disableBackingStore)
+	pScreen->backingStoreSupport = WhenMapped;
+
     cs->PositionWindow = pScreen->PositionWindow;
     pScreen->PositionWindow = compPositionWindow;
 
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 4f1f3d4..70885e3 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1638,6 +1638,11 @@ xf86SetBackingStore(ScreenPtr pScreen)
     else {
         if (xf86GetOptValBool(options, OPTION_BACKING_STORE, &useBS))
             from = X_CONFIG;
+#ifdef COMPOSITE
+	if (from != X_CONFIG)
+	    useBS = xf86ReturnOptValBool(options, OPTION_BACKING_STORE,
+					 !noCompositeExtension);
+#endif
     }
     free(options);
     pScreen->backingStoreSupport = useBS ? WhenMapped : NotUseful;
-- 
1.8.3.1



More information about the xorg-devel mailing list