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>
This commit is contained in:
Keith Packard
2014-09-04 08:36:07 -07:00
parent 7a0c79c8c4
commit bf338efc67
3 changed files with 7 additions and 3 deletions

View File

@@ -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,

View File

@@ -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