From: Robert Bragg Date: Fri, 16 Apr 2010 13:38:52 +0000 (+0100) Subject: glx: handle spurious GLX_BufferSwapComplete events gracefully X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=62ac3b312e861d813dc5a4f9c8d3556b86381626;p=profile%2Fivi%2Fclutter.git glx: handle spurious GLX_BufferSwapComplete events gracefully Instead of simply aborting we now print out a warning, when a spurious GLX_BufferSwapComplete event is handled since it seems that people are coming across the problem (perhaps due to a buggy driver) and making apps crash in this situation is a bit extreme. --- diff --git a/clutter/glx/clutter-event-glx.c b/clutter/glx/clutter-event-glx.c index f6c7b4e..2034534 100644 --- a/clutter/glx/clutter-event-glx.c +++ b/clutter/glx/clutter-event-glx.c @@ -82,8 +82,14 @@ clutter_backend_glx_handle_event (ClutterBackendX11 *backend_x11, if (stage_x11->xwin == swap_complete_event->drawable) { - g_assert (stage_glx->pending_swaps); - stage_glx->pending_swaps--; + if (G_UNLIKELY (stage_glx->pending_swaps == 0)) + { + g_warning ("Spurious GLX_BufferSwapComplete event received for " + "stage drawable = 0x%08lx", + swap_complete_event->drawable); + } + else + stage_glx->pending_swaps--; return TRUE; } }