[RFC PATCH xserver] xwayland: Avoid assert failure in flips_stop()
Roman Gilg
subdiff at gmail.com
Fri Sep 21 09:53:26 UTC 2018
Great detailed analysis in the backtrace! :)
What confused me at first was that the present_wnmd_flips_stop function is
called at all in this state because it should only be called when at least
one flip has been done and in this case xwl_window->present_window must
have been set to the presenting (child) window.
I believe now the root problem is that the window did in fact some flips in
the past, but on the reparent operation a new parent window with a new
xwl_window struct is set, which then has a different present_window value.
That means when reparenting of a child window with flips the
xwl_window->present_window values must be updated on the old parent (to
NULL) and on the new parent (to the new child window). Or more generic this
must be done on any unmap/map operation.
One extra case must be considered: if there is already a different child
window doing flips on the new parent window the reparented child window
must be instructed to stop its flips.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg-devel/attachments/20180921/4c043f77/attachment.html>
More information about the xorg-devel
mailing list