~vanvugt/compiz-core/fix-startup-plugins

  • Committer: Daniel van Vugt
  • Date: 2012-03-29 07:05:25 UTC
  • Revision ID: daniel.van.vugt@canonical.com-20120329070525-jewbr3e0ru4orspg
Avoid graphics corruption and hangs on compiz start-up by ensuring that
plugins don't get initialized, de-initialized and re-initialzed during
start-up. (LP: #963093) (LP: #963633)

The multiple init/fini/init calls occured when compiz was asked to load an
invalid plugin name. This occurred most recently as plugins "bailer" and
"detection" were left in some peoples' configs while the plugins themselves
no longer exist in the current compiz release.

The source of the graphics corruption and hangs has been found to be a
problem in the composite and/or opengl plugins. One or both of them are unsafe
to init/fini multiple times without a full compiz restart. So the root cause
is not exactly known yet. However composite and opengl are not alone; many
plugins have bugs with init/fini/init sequences, so it is valuable to fix
the start-up plugin ordering as this does.

Essentially this fix works by remembering which plugins don't exist at all
and putting them on a black list. Then subsquent updates check the blacklist
and know they should never include those failed plugins in testing whether
the active plugin lists have changed.

The second part of the fix is to ensure updatePlugins no longer calls
screen->setOptionForPlugin to change the active_plugins setting based on what
can and is loaded. That's not only redundant and wasteful but might cause
further callbacks to updatePlugins unnecessarily.

The final part of the fix is to remove a rendundant call to updatePlugins from
EventManager::init. It is not required as main tells PluginManager when to
load plugins on startup.
Filename Latest Rev Last Changed Committer Comment Size
..
cmake 2092 15 years ago Dennis kasprzyk Initial version of CMake build system. Diff
gtk 375 17 years ago David Reveman Rename gnome directory to gtk. Diff
images 1 18 years ago David Reveman Initial revision Diff
include 1 18 years ago David Reveman Initial revision Diff
kde 1 18 years ago David Reveman Initial revision Diff
libdecoration 627 17 years ago David Reveman Add libdecoration and move some initial code from Diff
metadata 1101 17 years ago Mike Dransfield Merge branch 'master' of git://git.freedesktop.org Diff
plugins 1 18 years ago David Reveman Initial revision Diff
po 180 17 years ago Dan Winship require intltool for option-description translatio Diff
scripts 3044.2.1 12 years ago Łukasz 'sil2100' Zemczak Added run-with-xvfb.sh from Unity-2d for enabling Diff
src 1 18 years ago David Reveman Initial revision Diff
tests 2919.2.1 12 years ago smspillaz Added Xig Testing infrastructure to compiz Diff
xslt 2276 15 years ago Dennis kasprzyk New generalized build system. Diff
.gitignore 2117 15 years ago Dennis kasprzyk Cleanup .gitignore 14 bytes Diff Download File
AUTHORS 3029.2.1 12 years ago Daniel van Vugt Update NEWS and AUTHORS in readiness for 0.9.7.0 R 4.1 KB Diff Download File
ChangeLog 2793.1.1 12 years ago Sam Spilsbury Update NEWS for 0.9.5.92.1 525 KB Diff Download File
CMakeLists.txt 3071 12 years ago Alan Griffiths Fix LP#964248 - Build GTest locally 5.6 KB Diff Download File
compiz.pc.in 2993 12 years ago Daniel van Vugt Revert the compiz.pc part of the fix for LP: #9280 237 bytes Diff Download File
config.h.core.in 2412.1.15 14 years ago Erkin Bahceci Properly expand variables. 132 bytes Diff Download File
COPYING 817 17 years ago David Reveman Update the text in COPYING file. The old text coul 274 bytes Diff Download File
COPYING.GPL 1 18 years ago David Reveman Initial revision 17.5 KB Diff Download File
COPYING.LGPL 817 17 years ago David Reveman Update the text in COPYING file. The old text coul 25.9 KB Diff Download File
COPYING.MIT 1 18 years ago David Reveman Initial revision 1 KB Diff Download File
Doxyfile 2400.1.10 14 years ago Kristopher Ives Excluded *Wrap* from Doxygen. Fixed some old comme 61.9 KB Diff Download File
INSTALL 2634 13 years ago Jason Smith Update INSTALL file 433 bytes Diff Download File
NEWS 3062 12 years ago Daniel van Vugt Final news updates for 0.9.7.2 28.8 KB Diff Download File
README 1 18 years ago David Reveman Initial revision 311 bytes Diff Download File
RELEASING 1301 16 years ago David Reveman Add release documentation and makefile rules that 2.6 KB Diff Download File
TODO 1 18 years ago David Reveman Initial revision 292 bytes Diff Download File
VERSION 3063.1.1 12 years ago Daniel van Vugt Bump version to 0.9.7.3. At least until we have a 8 bytes Diff Download File