mutter/src/compositor
Owen W. Taylor 83f8bfd2ca Reduce overpaint in the window group
When we are painting a stack of 5-10 maximized windows, the
standard bottom-to-top method of drawing every actor results
in a tremendous amount of overdraw and can easily max out
the available memory bandwidth on a low-end* graphics chipset.
It's even worse if window textures are being accessed over
the AGP bus.

When we have opaque windows, we can go ahead and compute visibility
ourselves (in classic X-server fashion) and use that information to
restrict drawing obscured actors.

* Add MutterWindowGroup - a ClutterGroup subclass with logic
  for figuring out obscured regions.

* Add mutter_window_get_obscured_region() to get the region
  obscured by that window.

* Add mutter_shaped_texture_set_clip_region() to hint
  a clip region to the painting code; this is set based on
  the computed visible region of MutterWindowGroup.

* Add tidy_texture_frame_set_needs_paint() to hint that the
  paint can be skipped entirely; this is used when we detect
  that the window shadow is entirely obscured.

http://bugzilla.gnome.org/show_bug.cgi?id=587344
2009-07-09 16:56:01 +01:00
..
plugins There can be only one compositor engine 2009-06-30 09:34:03 -04:00
tidy Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
compositor-private.h Remove unused focus_window member of MetaCompScreen 2009-07-06 00:06:23 +01:00
compositor.c Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-module.c There can be only one compositor engine 2009-06-30 09:34:03 -04:00
mutter-module.h There can be only one compositor engine 2009-06-30 09:34:03 -04:00
mutter-plugin-manager.c There can be only one compositor engine 2009-06-30 09:34:03 -04:00
mutter-plugin-manager.h There can be only one compositor engine 2009-06-30 09:34:03 -04:00
mutter-plugin.c Separate source and header files for MutterWindow 2009-07-05 23:56:51 +01:00
mutter-shaped-texture.c Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-shaped-texture.h Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-window-group.c Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-window-group.h Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-window-private.h Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
mutter-window.c Reduce overpaint in the window group 2009-07-09 16:56:01 +01:00
README There can be only one compositor engine 2009-06-30 09:34:03 -04:00
shadow.c Split shadow code into a separate file 2009-07-05 23:28:38 +01:00
shadow.h Split shadow code into a separate file 2009-07-05 23:28:38 +01:00

Intro
=====

Fix me.


Env Vars
========

MUTTER_DISABLE_MIPMAPS - set to disable use of mipmaped windows.