gtk/gdk
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
..
broadway device: remove get_toplevel from surface_at_position vfunc 2020-05-19 13:07:38 -07:00
quartz Fix minor typos 2020-05-28 11:00:03 +03:00
resources/glsl Use GLSL version 110 for OpenGL 2 shaders. 2016-11-01 15:42:46 -03:00
wayland wayland: Remove unused fribidi include 2020-06-04 20:44:55 +02:00
win32 Drop fallback-c89.c 2020-05-31 17:09:23 +02:00
x11 x11: Defer _NET_WM_FRAME_DRAWN update until frame usable by compositor 2020-06-05 10:01:13 -04:00
COPYING
default_cursor.png gdk: Include a default cursor as resource 2020-04-26 14:41:52 -04:00
filetransferportal.c filechooser portal: Free portal proxy when bus connection closes 2020-02-04 14:08:10 +01:00
filetransferportalprivate.h Tweak the file transfer portal _again_ 2020-01-17 23:46:37 -05:00
gdk-autocleanup.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdk-private.h display: Remove gdk_display_get_last_seen_time() 2020-05-13 04:48:22 +02:00
gdk.c gdk: Drop no-longer-used documentation 2020-05-26 20:52:41 -04:00
gdk.h Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00
gdkapplaunchcontext.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkapplaunchcontext.h Add a getter for GdkAppLaunchContext::display 2020-02-24 08:32:34 -05:00
gdkapplaunchcontextprivate.h gdk: Include gio.h in gdktypes.h 2017-12-10 01:09:14 +01:00
gdkcairo.c gdk: Remove gdk_cairo_get_clip_rectangle() 2020-02-13 07:36:38 +01:00
gdkcairo.h gdk: Remove gdk_cairo_get_clip_rectangle() 2020-02-13 07:36:38 +01:00
gdkcairocontext.c Fix some g-i annotation warnings 2018-05-01 12:35:32 +02:00
gdkcairocontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkcairocontextprivate.h gdkcairocontext*.h: Include cairo.h consistently 2018-05-15 13:49:45 +08:00
gdkclipboard.c clipboard: file transfer portal support 2019-12-12 14:25:33 -05:00
gdkclipboard.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkclipboardprivate.h gdk: Change some async clipboard api 2019-04-02 15:10:53 +00:00
gdkconfig.h.meson Remove more mir remnants 2019-12-28 21:52:34 -05:00
gdkconfig.h.win32 Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkconfig.h.win32_vulkan Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkconstructor.h gdk: Include copy of glib/gconstructor.h 2019-03-17 21:29:59 +01:00
gdkcontentdeserializer.c Tweak the file transfer portal _again_ 2020-01-17 23:46:37 -05:00
gdkcontentdeserializer.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkcontentformats.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkcontentformats.h contentformats: Constify some functions 2020-03-02 04:43:56 +01:00
gdkcontentformatsprivate.h gdk: Sanitize GdkContentFormats API 2017-11-20 23:15:11 +01:00
gdkcontentprovider.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkcontentprovider.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkcontentproviderimpl.c clipboard: GdkContentProviderUnion should return after writing the first matched format 2020-05-07 11:27:45 +02:00
gdkcontentproviderimpl.h Remove gdk_content_provider_new_with_formats() 2020-02-18 02:40:00 +01:00
gdkcontentproviderprivate.h clipboard: Introduce GdkContentProvider 2017-12-03 05:46:47 +01:00
gdkcontentserializer.c Tweak the file transfer portal _again_ 2020-01-17 23:46:37 -05:00
gdkcontentserializer.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkcursor.c docs: Small updates 2018-07-13 10:13:00 +02:00
gdkcursor.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkcursorprivate.h gdk: Add gdk_cursor_hash() and gdk_cursor_equal() 2017-11-04 00:07:13 +01:00
gdkdevice.c Drop fallback-c89.c 2020-05-31 17:09:23 +02:00
gdkdevice.h gdk: Add keymap properties to GdkDevice 2020-04-05 23:43:41 -04:00
gdkdevicepad.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevicepad.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkdevicepadprivate.h gdk: Add GdkDevicePad 2016-08-23 21:01:44 +02:00
gdkdeviceprivate.h device: remove get_toplevel from surface_at_position vfunc 2020-05-19 13:07:38 -07:00
gdkdevicetool.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevicetool.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkdevicetoolprivate.h gdk: Pass hardware ID on gdk_device_tool_new() 2016-08-23 21:01:44 +02:00
gdkdisplay.c Merge branch 'drop-fallback-c89' into 'master' 2020-05-31 18:14:14 +00:00
gdkdisplay.h Bring back gdk_display_put_event 2020-05-29 09:26:50 -04:00
gdkdisplaymanager.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkdisplaymanager.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkdisplaymanagerprivate.h
gdkdisplayprivate.h Bring back gdk_display_put_event 2020-05-29 09:26:50 -04:00
gdkdrag.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrag.h gdk: Make gdk_drag_begin take doubles 2020-05-17 17:51:03 -04:00
gdkdragprivate.h Strip const from GdkEvent 2020-02-21 00:51:02 -05:00
gdkdragsurface.c docs: Remove unnecessary SECTION 2020-05-12 18:44:21 +01:00
gdkdragsurface.h Annotation fixes 2020-04-03 15:30:56 +01:00
gdkdragsurfaceprivate.h Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00
gdkdrawcontext.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrawcontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkdrawcontextprivate.h drawcontext: Only pass the region that matters 2018-04-24 23:16:58 +02:00
gdkdrop.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrop.h drop: Remove unused convenience APIs 2020-03-02 04:43:56 +01:00
gdkdropprivate.h gdk: Make gdk_drop_status() take preferred action 2020-03-02 04:43:56 +01:00
gdkenumtypes.c.template Use g_once for all the mkenums template files 2019-05-21 10:32:08 -05:00
gdkenumtypes.h.template Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkevents.c Remove position from GdkScrollEvent 2020-06-01 10:49:33 +01:00
gdkevents.h GdkEvent: Save history in a GArray 2020-05-05 08:20:09 +02:00
gdkeventsprivate.h Remove position from GdkScrollEvent 2020-06-01 10:49:33 +01:00
gdkframeclock.c frame-clock: New approach in smoothing frame clock 2020-05-28 15:13:07 +02:00
gdkframeclock.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkframeclockidle.c Fix frameclock going backwards 2020-06-01 10:53:24 +02:00
gdkframeclockidleprivate.h frameclockidle: Rename header so it's private now 2018-03-29 05:02:15 +02:00
gdkframeclockprivate.h frame-clock: New approach in smoothing frame clock 2020-05-28 15:13:07 +02:00
gdkframetimings.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkframetimings.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkgl.c gdk: Remove an unused texture api 2020-05-26 20:43:47 -04:00
gdkglcontext.c Fixed OpenGL extension detection for extensions promoted to OpenGL core. 2020-02-14 05:41:01 +11:00
gdkglcontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkglcontextprivate.h GdkGLContext: Add internal functions for KHR_DEBUG calls 2019-04-25 11:35:00 +02:00
gdkglobals.c gdk: Reorganize env vars 2018-01-14 17:05:04 -05:00
gdkgltexture.c gl texture: fix a typo 2019-01-23 22:33:44 -05:00
gdkgltexture.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkgltextureprivate.h texture: Expose subclasses as subclasses 2018-03-18 05:57:07 +01:00
gdkinternals.h gdk: Remove an unused texture api 2020-05-26 20:43:47 -04:00
gdkintl.h
gdkkeynames.c
gdkkeys.c keymap: Remove leftover code 2020-05-06 13:15:45 -04:00
gdkkeys.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkkeysprivate.h keymap: Cache key info 2020-04-30 13:05:52 -04:00
gdkkeysyms-update.pl docs: Fix GTK links and locations 2019-02-06 10:39:27 +01:00
gdkkeysyms.h docs: Fix GTK links and locations 2019-02-06 10:39:27 +01:00
gdkkeyuni.c Replace gdk_keymap_get_for_display by gdk_display_get_keymap 2017-12-15 07:44:58 -05:00
gdkmarshalers.list surface: Add marshallers for new events 2019-05-28 19:19:24 +02:00
gdkmemorytexture.c Document GdkMemoryTexture 2018-04-28 16:22:29 -04:00
gdkmemorytexture.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkmemorytextureprivate.h texture: Expose subclasses as subclasses 2018-03-18 05:57:07 +01:00
gdkmonitor.c display: Remove unneeded getters 2020-05-17 07:32:37 +02:00
gdkmonitor.h Remove primary monitor api 2020-01-30 21:33:37 +01:00
gdkmonitorprivate.h monitor: Add gdk_monitor_set_geometry() 2020-05-17 07:10:34 +02:00
gdkpaintable.c xxx: Add a hack to make paintables transform to/from objects 2020-05-30 19:26:46 -04:00
gdkpaintable.h docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkpango.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkpango.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkpipeiostream.c gdk: Remove unnecessary assignments 2018-05-06 02:10:20 +02:00
gdkpipeiostreamprivate.h clipboard: Implement local fallback clipboard transfers 2017-12-03 05:46:47 +01:00
gdkpixbuf-drawable.c pixbuf: Add a missing return value transfer annotation 2019-09-13 11:07:56 +02:00
gdkpixbuf.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkpopup.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkpopup.h surface: Implement GdkPopup 2020-03-11 19:35:55 -04:00
gdkpopuplayout.c popuplayout: Add docs 2020-03-11 19:35:55 -04:00
gdkpopuplayout.h gdk/wayland: Avoid relayout with the same properties 2020-02-21 21:55:16 +01:00
gdkpopupprivate.h Introduce GdkPopup 2020-03-11 19:35:55 -04:00
gdkprofiler.c profiler: Add G_GNUC_PRINTF markers to silence warnings 2020-02-12 13:36:04 +01:00
gdkprofilerprivate.h profiler: Add _end_mark() version of _add_mark() 2020-02-12 11:25:34 +01:00
gdkrectangle.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkrectangle.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkrgba.c Drop fallback-c89.c 2020-05-31 17:09:23 +02:00
gdkrgba.h Add pure and const annotations to various functions 2020-01-26 18:21:07 +01:00
gdkrgbaprivate.h build: Add more useful warning flags 2020-03-05 07:56:28 +01:00
gdkseat.c Strip const from GdkEvent 2020-02-21 00:51:02 -05:00
gdkseat.h Remove GdkSeatGrabPrepareFunc from headers 2020-02-22 08:11:34 -05:00
gdkseatdefault.c Replace gdk_surface_is_visible by _get_mapped 2020-02-24 19:07:03 -05:00
gdkseatdefaultprivate.h GdkSeatDefault: Add functions to add/remove tools 2016-04-06 15:43:29 +02:00
gdkseatprivate.h Remove GdkSeatGrabPrepareFunc from headers 2020-02-22 08:11:34 -05:00
gdksnapshot.c snapshot: Turn into GObject 2018-03-18 19:21:33 +01:00
gdksnapshot.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdksnapshotprivate.h snapshot: Turn into GObject 2018-03-18 19:21:33 +01:00
gdksurface.c Drop fallback-c89.c 2020-05-31 17:09:23 +02:00
gdksurface.h Merge branch 'toplevel-move-resize' into 'master' 2020-05-17 19:15:46 +00:00
gdksurfaceprivate.h gdk: Make gdk_drag_begin take doubles 2020-05-17 17:51:03 -04:00
gdktexture.c docs: Remove redundant SECTION 2020-05-12 18:43:56 +01:00
gdktexture.h Add pure and const annotations to various functions 2020-01-26 18:21:07 +01:00
gdktextureprivate.h texture: Change download vfunc 2018-03-12 17:21:45 +01:00
gdktoplevel.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdktoplevel.h gdk: Add gdk_toplevel_begin_move/resize 2020-05-17 12:41:16 -04:00
gdktoplevellayout.c surface: Document coordinate systems a bit 2020-04-13 09:29:11 -04:00
gdktoplevellayout.h Introduce GdkToplevelLayout 2020-03-12 14:44:03 -04:00
gdktoplevelprivate.h gdk: Move the begin_move/resize_drag vfuncs around 2020-05-17 14:15:06 -04:00
gdktypes.h docs: Drop a mention of gdk_window_move() 2020-05-26 20:05:34 -04:00
gdkversionmacros.h.in Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkvulkancontext.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkvulkancontext.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkvulkancontextprivate.h vulkan: Fix release builds 2018-01-21 15:23:17 +01:00
gen-gdk-gresources-xml.py gdk: Include a default cursor as resource 2020-04-26 14:41:52 -04:00
gen-keyname-table.pl
keyname-table.h gdk: Translate some more key names 2017-10-09 20:33:14 +02:00
keynames-translate.txt gdk: Translate some more key names 2017-10-09 20:33:14 +02:00
keynames.txt
meson.build Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00