06a670f2e7
The repaint logic breaks when finish_frame is called from the present callback. Ideally we should throttle to vsync (or even better, the compositor repaint cycle, but hey, X is X), but this goes a long way.