Details
-
Task
-
Resolution: Unresolved
-
P1: Critical
-
None
-
None
-
None
Description
When using the render thread today we sync up the GUI thread state with the render thread, but then let the render thread continue rendering while we return back to the event loop for the GUI thread.
In some cases, like an expose event, or during resizing, it's important that once the GUI thread returns from the system's expose or resize callback, the next frame has been fully rendered to match the new state.
One way to potentially guarantee this, without using main thread rendering, is to introduce a mode where the GUI thread waits for the entire frame to finish rendering before returning.
This mode would also be beneficial for the window embedding case. When the geometry of an Item is changed, which in turn affects the geometry of the contained QWindow, we want to update the two in perfect sync. Right now we don't, because the item's visual geometry is updated on the render thread, while the QWindow is moved around on the GUI thread.