diff options
author | Keith Packard <keithp@keithp.com> | 2014-09-04 08:36:07 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-09-11 18:19:41 -0700 |
commit | bf338efc678258d2d366dff2ed873752f98f0bfc (patch) | |
tree | d196a4d1b80965cd5b7c64d20607e1558eae9eb9 /present | |
parent | 7a0c79c8c478bf22ee71c1ea35886a6f555ef2bb (diff) |
glx/present: Only send GLX_BufferSwapComplete for PresentCompleteKindPixmap
Present didn't provide the 'kind' argument to the
present_complete_notify hook that GLX uses to construct
GLX_BufferSwapComplete events, so GLX was reporting events for
PresentCompleteKindMSC notifications, which resulted in duplicate
GLX_BufferSwapComplete events and crashes in clutter.
See the gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=733282
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'present')
-rw-r--r-- | present/present.h | 1 | ||||
-rw-r--r-- | present/present_event.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/present/present.h b/present/present.h index 0e3bdc08e..aab2e168a 100644 --- a/present/present.h +++ b/present/present.h @@ -116,6 +116,7 @@ extern _X_EXPORT Bool present_screen_init(ScreenPtr screen, present_screen_info_ptr info); typedef void (*present_complete_notify_proc)(WindowPtr window, + CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, diff --git a/present/present_event.c b/present/present_event.c index ff57eba41..d3a59ea25 100644 --- a/present/present_event.c +++ b/present/present_event.c @@ -174,7 +174,7 @@ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 se } } if (complete_notify) - (*complete_notify)(window, mode, serial, ust, msc); + (*complete_notify)(window, kind, mode, serial, ust, msc); } void |