DescriptionForce buffer re-allocation when the backing display changes
When the user changes the primary display and both displays have the
same resolution, the buffers are never re-allocated. It is then possible
to encounter the following scenario:
Surface 1 scans out on display A and surface 2 scans out on display B.
When surface 1 moves to display B and surface 2 to display A there is no
guarantee that either surface will force re-draws. If, say, surface 1
starts page flipping it is possible that it would start re-using the
buffer currently shown on display A which could cause the GPU process to
wait for display A to release the buffer. At this point the GPU main
thread is blocked waiting without a possibility to progress since
surface 2 cannot use the GPU to update. Eventually the watchdog kills
the GPU process which causes the surfaces to be reallocated and progress
to continue.
BUG=511446
Committed: https://crrev.com/5bfd1d7ea19dae7cca921afa01cb0913d99514c0
Cr-Commit-Position: refs/heads/master@{#347933}
Patch Set 1 #
Total comments: 2
Patch Set 2 : add comment #
Dependent Patchsets: Messages
Total messages: 13 (5 generated)
|