Description[Ozone-DRM] Modeset when re-mapping windows to controllers
This fixes an issue where the surface associated with a window thinks it
can submit a buffer, but the controller is waiting for a page flip event
to finish. This issue is triggered in the following scenario:
- surface1 mapped to display1
- surface2 mapped to display2
- surface2 page flips a buffer on display2
- surface1 is re-mapped to display2
- surface2 is re-mapped to display1
- surface1 had no pending buffers, so it thinks it is fine to schedule a
page flip on display2
- display2 fails to page flip since it is still waiting for the callback
from surface2
We had considered using a queue internally, though that would have
complicated the logic. Since changing display configuration is a rare
event we decided it would be simpler to just modeset at this point even
if modesetting would take longer.
BUG=511446, 529806
Committed: https://crrev.com/569ff0f367864bc65b8abaaab4dec1e57d25ac93
Cr-Commit-Position: refs/heads/master@{#348496}
Patch Set 1 #Patch Set 2 : fixed unittests #
Depends on Patchset: Dependent Patchsets: Messages
Total messages: 16 (6 generated)
|