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.
This commit is contained in:
Robert Bragg 2010-04-16 14:38:52 +01:00
parent 716ec82db8
commit 62ac3b312e

View File

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