mutter/src
Rui Matos 299ed424d3 compositor: Handle fences in the frontend X connection
Since mutter has two X connections and does damage handling on the
frontend while fence triggering is done on the backend, we have a race
between XDamageSubtract() and XSyncFenceTrigger() causing missed
redraws in the GL_EXT_X11_sync_object path.

If the fence trigger gets processed first by the server, any client
drawing that happens between that and the damage subtract being
processed and is completely contained in the last damage event box
that mutter got, won't be included in the current frame nor will it
cause a new damage event.

A simple fix for this would be XSync()ing on the frontend connection
after doing all the damage subtracts but that would add a round trip
on every frame again which defeats the asynchronous design of X
fences.

Instead, if we move fence handling to the frontend we automatically
get the right ordering between damage subtracts and fence triggers.

https://bugzilla.gnome.org/show_bug.cgi?id=728464
2015-08-13 14:14:46 +02:00
..
backends compositor: Handle fences in the frontend X connection 2015-08-13 14:14:46 +02:00
compositor compositor: Handle fences in the frontend X connection 2015-08-13 14:14:46 +02:00
core window: Remove fullscreen_after_placement special case 2015-07-30 15:27:01 +02:00
meta Put G_GNUC_CONST at the end of the declarations 2015-07-06 00:29:23 -07:00
tests Remove a few more guards for frees 2014-12-28 19:51:22 -08:00
ui frames: handle META_FRAME_CONTROL_NONE on left click 2015-07-15 07:45:02 -05:00
wayland wayland: Implement wl_pointer_gestures 2015-08-10 17:30:12 +02:00
x11 group: Convert code to XCB to prevent errors 2015-08-05 13:39:23 -07:00
.cvsignore Install desktop files in both .../share/applications and 2008-09-12 04:05:17 +00:00
libmutter.pc.in meta: Add generated meta-version.h 2014-06-05 14:05:16 +02:00
Makefile-tests.am x11: Remove async-getprop 2015-06-17 18:08:11 -07:00
Makefile.am wayland: Implement wl_pointer_gestures 2015-08-10 17:30:12 +02:00
meta-enum-types.c.in Install enum types 2015-07-05 22:01:59 -07:00
meta-enum-types.h.in Install enum types 2015-07-05 22:01:59 -07:00
org.freedesktop.login1.xml launcher: Replace mutter-launch with logind integration 2014-05-19 15:09:23 -04:00
org.gnome.Mutter.DisplayConfig.xml Rename the DBus interface files 2014-03-31 23:44:46 -04:00
org.gnome.Mutter.IdleMonitor.xml Rename the DBus interface files 2014-03-31 23:44:46 -04:00
stamp-mutter-enum-types.h Install enum types 2015-07-05 22:01:59 -07:00