Sync QtQuick animation driver to the render loop
We render each offscreen QtQuick effect (if damaged) on every compositor paint. However currently the driving of animations is independently by a timer in QtBase code, because we force the basic render loop this is effectively a fallback case limited to 60fps and completely out of sync with when we render.
This new code advances the animation driver used by QtQuick scenes just before any output renders with the expected final render time. This ensures that it matches the frame rate and timings are more accurate.
For a multi-screen case animations are potentially advanced multiple times per frame, but this is relatively cheap, just updating a few numbers. The rendering is still once per frame and only if the scene itself changed.
Edited by David Edmundson