-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.8, 6.11
-
None
When showing more than one window and using QSG_USE_SIMPLE_ANIMATION_DRIVER=1 and hence QSGElapsedTimerAnimationDriver, a static window (w/o animations) is still rendered with 60fps (on a 60Hz monitor) if another window shows a running animation. However, the static window should not be updated. This can be reproduced with the attached twins.qml example. The problem was reproduced on X11 and Wayland. Of course, the threaded render loop must be used.
Hint: The problem is basically, that postUpdateRequest is always called in QSGThreadedRenderLoop::polishAndSync, after the main thread is unlocked. Removing that call solves the issue that the static window is continuously updated, but leads to other issues, unfortunately. The issues were not in line with the comments, though: "other animations [that don't lead to visual update] would then stop functioning since there is nothing advancing the animation system": couldn't be reproduced; "if it was exposed we would not hit this branch": the branch is actually hit - both, the animating, as well, as the static window are exposed. On Wayland, sometimes the animation doesn't start from the beginning and user interaction might start, but also stop the animation. On X11 the animation always starts, but stops again after ~5s.