mutter/src/backends
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
..
native native: Actually close input device fds 2015-08-05 10:28:15 +08:00
x11 compositor: Handle fences in the frontend X connection 2015-08-13 14:14:46 +02:00
edid-parse.c Remove trailing whitespace 2014-05-02 09:34:48 -04:00
edid.h edid: Remove unused declarations 2014-09-12 11:55:08 -06:00
meta-backend-private.h backend: Add meta_backend_update_last_device() 2015-03-13 21:01:11 +01:00
meta-backend.c backends: Center pointer on primary monitor on startup 2015-03-30 14:00:31 +02:00
meta-barrier-private.h barrier: Fix type cast macros 2015-01-18 13:32:28 -08:00
meta-barrier.c Install enum types 2015-07-05 22:01:59 -07:00
meta-cursor-private.h backend: Store XcursorImages for theme cursors 2015-07-20 22:06:44 +02:00
meta-cursor-renderer.c backend: Add meta_cursor_renderer_force_update() 2015-07-20 22:06:44 +02:00
meta-cursor-renderer.h backend: Add meta_cursor_renderer_force_update() 2015-07-20 22:06:44 +02:00
meta-cursor-tracker-private.h cursor-tracker: Don't require a screen 2014-07-22 11:10:14 -04:00
meta-cursor-tracker.c cursor-tracker: Emit cursor-changed when XFixes tells us about it 2015-04-13 16:58:27 -07:00
meta-cursor.c backend: Store XcursorImages for theme cursors 2015-07-20 22:06:44 +02:00
meta-cursor.h Conditionalize Wayland support again 2014-08-13 20:28:22 -04:00
meta-display-config-shared.h Remove trailing whitespace 2014-05-02 09:34:48 -04:00
meta-idle-monitor-dbus.c MetaIdleMonitorDBus: unref the objects after exporting them 2014-05-07 19:04:54 +02:00
meta-idle-monitor-dbus.h Start molding out a new src/backends/ dir 2014-03-31 22:11:00 -04:00
meta-idle-monitor-private.h Remove trailing whitespace 2014-05-02 09:34:48 -04:00
meta-idle-monitor.c backends: Make MetaBackend available to introspection 2014-08-07 11:31:59 +02:00
meta-input-settings-private.h backend: Add set_click_method MetaInputSettings vfunc 2015-03-16 18:05:51 +01:00
meta-input-settings.c backend: Apply the right settings to the right input devices 2015-04-15 13:33:12 +02:00
meta-monitor-config.c Monitor-config: Fix a copy-paste error 2015-07-20 17:33:28 -04:00
meta-monitor-config.h monitor-manager: Expose MetaMonitorManager to introspection 2015-01-30 13:13:49 -05:00
meta-monitor-manager-dummy.c nested: Allow configuration of dummy output configuration 2015-07-15 14:55:55 +08:00
meta-monitor-manager-dummy.h monitor-manager: Expose MetaMonitorManager to introspection 2015-01-30 13:13:49 -05:00
meta-monitor-manager-private.h MetaMonitorInfo: Provide scale information 2015-07-16 11:53:40 +08:00
meta-monitor-manager.c backends/monitor-manager: Validate EDID strings 2015-07-21 16:42:53 +02:00
meta-stage.c meta-stage: To change the stage state we need to set the event type 2015-03-30 13:42:56 -04:00
meta-stage.h wayland: manually activate/deactivate stage when taking/dropping grab 2015-03-28 11:20:48 -04:00