Interaction between main loop iterations and window update events might be the reason for the glitchy performance on low-spec machines: the main loop was ticking away at maximum speed even though the window was stuck in a draw/vsync.
Now the main loop timer is explicitly stopped before a draw request is submitted, and the loop is only resumed after the draw has been completed.
Pause main loop while draw event requested
Interaction between main loop iterations and window update events
might be the reason for the glitchy performance on low-spec machines:
the main loop was ticking away at maximum speed even though the
window was stuck in a draw/vsync.
Now the main loop timer is explicitly stopped before a draw request
is submitted, and the loop is only resumed after the draw has been
completed.