gtk2/gdk/x11
Ray Strode 972134abe4 x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor
With the vendor provided Nvidia driver there is a small window of time
after drawing to a GL surface before the updates to that surface
can be used by the compositor.

Drawing is already coordinated with the compositor through the frame
synchronization protocol detailed here:

https://fishsoup.net/misc/wm-spec-synchronization.html

Unfortunately, at the moment, GdkX11Surface tells the compositor the
frame is ready immediately after drawing to the surface, not later,
when it's consumable by the compositor.

This commit defers announcing the frame as ready until it's consumable
by the compositor. It does this by listening for the X server to announce
damage events associated with the frame drawing.  It tries to find the
right damage event by waiting until fence placed at buffer swap time
signals.
2020-06-05 10:01:13 -04:00
..
gdkapplaunchcontext-x11.c Use commas to differentiate between text and filename 2019-07-24 13:51:22 +00:00
gdkasync.c Remove NEED_XIPROTO_H_FOR_XREPLY check 2019-08-21 20:46:30 +02:00
gdkasync.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcairocontext-x11.c Get rid of GdkSurfaceImpl 2019-05-28 20:25:14 +00:00
gdkcairocontext-x11.h x11: Move implementation of Cairo context backends 2018-04-24 23:16:13 +02:00
gdkclipboard-x11.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkclipboard-x11.h x11: Refactor code 2017-12-13 00:56:52 +01:00
gdkcursor-x11.c Remove primary monitor api 2020-01-30 21:33:37 +01:00
gdkdevice-xi2.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkdevicemanager-x11.c gdk/x11: Drop GdkDeviceManagerCore 2019-05-15 01:05:29 +02:00
gdkdevicemanager-xi2.c Restructure the GdkEvent type hierarchy 2020-04-16 19:54:02 +01:00
gdkdevicemanagerprivate-core.h GdkWindow -> GdkSurface initial type rename 2018-03-20 11:40:08 +01:00
gdkdisplay-x11.c x11: Add back support for the damage extension 2020-06-05 10:01:13 -04:00
gdkdisplay-x11.h x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdkdrag-x11.c x11: Avoid some frontend api use 2020-05-17 21:47:22 -04:00
gdkdrop-x11.c X11 dnd: Calculate relative coords right in events 2020-05-14 11:46:33 +02:00
gdkeventsource.c Restructure the GdkEvent type hierarchy 2020-04-16 19:54:02 +01:00
gdkeventsource.h x11: Refactor xevent filtering some more 2017-12-13 01:55:56 +01:00
gdkeventtranslator.c x11: change event translator interface 2020-02-21 00:47:51 -05:00
gdkeventtranslator.h gdk: Drop the GdkEventMask enum 2020-05-26 19:39:31 -04:00
gdkglcontext-x11.c x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdkglcontext-x11.h x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdkkeys-x11.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkkeys-x11.h Rename gdkx11keys.h 2020-04-07 18:12:58 +01:00
gdkmain-x11.c Correct GdkX11 import path in docs and include guards 2019-11-16 01:35:09 -08:00
gdkmonitor-x11.c Move fullscreen-mode to GdkToplevel 2020-03-12 15:30:11 -04:00
gdkmonitor-x11.h x11: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkprivate-x11.h x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdkproperty-x11.c x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdkscreen-x11.c display: Remove the monitor signals 2020-05-17 07:10:34 +02:00
gdkscreen-x11.h Fix minor typos 2020-05-28 11:00:03 +03:00
gdkselection-x11.c x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdkselectioninputstream-x11.c gdkselectioninputstream-x11: Fix memory leak 2018-09-16 20:08:25 +05:30
gdkselectioninputstream-x11.h x11: Improve fallbacks for text 2017-12-03 05:46:46 +01:00
gdkselectionoutputstream-x11.c x11: Avoid a critical in clipboard data transfer 2020-05-12 21:31:19 -04:00
gdkselectionoutputstream-x11.h x11: Refactor code 2017-12-13 00:56:52 +01:00
gdksettings.c Add a gtk-overlay-scrolling setting 2019-05-31 14:07:15 +00:00
gdksurface-x11.c x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdksurface-x11.h x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
gdktextlistconverter-x11.c x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdktextlistconverter-x11.h x11: Implement claiming the X Selection with the clipboard 2017-12-03 05:46:47 +01:00
gdkvisual-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkvisual-x11.h gdk: Drop the GdkByteOrder enum 2020-05-26 19:45:01 -04:00
gdkvulkancontext-x11.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkvulkancontext-x11.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11applaunchcontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11device-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11devicemanager-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11display.h x11: Remove gdk_x11_register_standard_event_type() 2020-05-17 01:02:17 +02:00
gdkx11dnd.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11glcontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11monitor.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11property.h x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdkx11screen.h x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdkx11selection.h x11: Get rid of GdkAtom and APIs supporting it. 2020-02-23 01:59:26 +01:00
gdkx11surface.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx11utils.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkx-autocleanups.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkx.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkxftdefaults.c Don't use xsettings or xft defaults in testsuite 2020-02-03 15:11:35 +01:00
gdkxid.c x11: Stop using child surface api 2019-05-28 20:25:13 +00:00
meson.build x11: Add back support for the damage extension 2020-06-05 10:01:13 -04:00
MwmUtil.h Change FSF Address 2012-02-27 17:06:11 +00:00
xsettings-client.c x11: Don't pass a GdkEvent to xsettings filters 2020-02-21 00:40:52 -05:00
xsettings-client.h x11: Don't pass a GdkEvent to xsettings filters 2020-02-21 00:40:52 -05:00