Skip to content

cogl-winsys-glx: Fix frame notification race/leak [performance]

Daniel van Vugt requested to merge vanvugt/mutter:fix-pending-swaps into master

If a second set_{sync,complete}_pending was queued before the idle handler had flushed the first then one of them would be forgotten. It would stay queued forever and never emitted as a notification.

This could happen repeatedly causing a slow leak. But worse still, clutter-stage-cogl would then have pending_swaps permanently stuck above zero preventing the presentation timing logic from being used.

The problem is that a boolean can only count to one, but in some cases (triple buffering, whether intentional or accidental #334 (closed)) we need it to count to two. So just change booleans to integers and count properly.

Edited by Jeff Fortin

Merge request reports