diff --git a/compiz-pageflip.patch b/compiz-pageflip.patch new file mode 100644 index 0000000..26f04c1 --- /dev/null +++ b/compiz-pageflip.patch @@ -0,0 +1,90 @@ +diff -up compiz-0.8.2/include/compiz-core.h.flip compiz-0.8.2/include/compiz-core.h +--- compiz-0.8.2/include/compiz-core.h.flip 2009-07-31 13:00:46.120940112 -0400 ++++ compiz-0.8.2/include/compiz-core.h 2009-07-31 13:00:57.625815409 -0400 +@@ -219,6 +219,8 @@ extern Bool useCow; + extern Bool noDetection; + extern Bool useDesktopHints; + extern Bool onlyCurrentScreen; ++extern Bool noWait; ++extern Bool alwaysSwap; + + extern char **initialPlugins; + extern int nInitialPlugins; +diff -up compiz-0.8.2/src/display.c.flip compiz-0.8.2/src/display.c +--- compiz-0.8.2/src/display.c.flip 2009-07-31 13:00:46.121940240 -0400 ++++ compiz-0.8.2/src/display.c 2009-07-31 13:00:57.627815245 -0400 +@@ -1488,6 +1488,9 @@ eventLoop (void) + s->idle ? s->redrawTime : + timeDiff); + ++ if (alwaysSwap == TRUE) ++ damageScreen (s); ++ + /* substract top most overlay window region */ + if (s->overlayWindowCount) + { +@@ -1547,9 +1550,11 @@ eventLoop (void) + targetScreen = NULL; + targetOutput = &s->outputDev[0]; + +- waitForVideoSync (s); ++ if (!noWait) ++ waitForVideoSync (s); + +- if (mask & COMP_SCREEN_DAMAGE_ALL_MASK) ++ if ((mask & COMP_SCREEN_DAMAGE_ALL_MASK) || ++ (alwaysSwap == TRUE)) + { + glXSwapBuffers (d->display, s->output); + } +diff -up compiz-0.8.2/src/main.c.flip compiz-0.8.2/src/main.c +--- compiz-0.8.2/src/main.c.flip 2009-07-31 13:00:46.122940228 -0400 ++++ compiz-0.8.2/src/main.c 2009-07-31 13:00:57.628820890 -0400 +@@ -67,6 +67,8 @@ Bool noDetection = FALSE; + Bool useDesktopHints = FALSE; + Bool onlyCurrentScreen = FALSE; + static Bool debugOutput = FALSE; ++Bool noWait = FALSE; ++Bool alwaysSwap = FALSE; + + #ifdef USE_COW + Bool useCow = TRUE; +@@ -89,7 +91,9 @@ usage (void) + "[--replace]\n " + "[--sm-disable] " + "[--sm-client-id ID] " +- "[--only-current-screen]\n " ++ "[--only-current-screen] " ++ "[--no-wait]\n " ++ "[--always-swap] " + + #ifdef USE_COW + " [--use-root-window] " +@@ -376,6 +380,14 @@ main (int argc, char **argv) + if (i + 1 < argc) + backgroundImage = argv[++i]; + } ++ else if (!strcmp (argv[i], "--no-wait")) ++ { ++ noWait = TRUE; ++ } ++ else if (!strcmp (argv[i], "--always-swap")) ++ { ++ alwaysSwap = TRUE; ++ } + else if (*argv[i] == '-') + { + compLogMessage ("core", CompLogLevelWarn, +diff -up compiz-0.8.2/src/screen.c.flip compiz-0.8.2/src/screen.c +--- compiz-0.8.2/src/screen.c.flip 2009-02-15 14:26:28.000000000 -0500 ++++ compiz-0.8.2/src/screen.c 2009-07-31 13:00:57.631815337 -0400 +@@ -2422,6 +2422,9 @@ void + damageScreenRegion (CompScreen *screen, + Region region) + { ++ if (alwaysSwap) ++ damageScreen (screen); ++ + if (screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK) + return; + diff --git a/compiz.spec b/compiz.spec index 300ba0d..7ea9555 100644 --- a/compiz.spec +++ b/compiz.spec @@ -14,7 +14,7 @@ URL: http://www.go-compiz.org License: GPLv2+ and LGPLv2+ and MIT Group: User Interface/Desktops Version: 0.8.2 -Release: 7%{?dist} +Release: 8%{?dist} Summary: OpenGL window and compositing manager BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -61,6 +61,7 @@ Patch103: composite-cube-logo.patch Patch105: fedora-logo.patch Patch106: redhat-logo.patch Patch107: compiz-0.8.2-wall.patch +Patch108: compiz-pageflip.patch #Patch110: scale-key.patch # update translations in desktop-effects Patch115: desktop-effects-linguas.patch @@ -146,6 +147,7 @@ popd %patch123 -p1 -b .initial-plugins %patch125 -p1 -b .gnome-terminal +%patch108 -p1 -b .pageflip %build rm -rf $RPM_BUILD_ROOT @@ -359,6 +361,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jul 31 2009 Kristian Høgsberg - 0.8.2-8 +- Add patch to add option to always use glXSwapBuffers. + * Fri Jul 24 2009 Fedora Release Engineering - 0.8.2-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild