DescriptionDisable region copy on ARM since it isn't supported
Copying a buffer region isn't supported on ARM due to a driver bug.
Until support is landed we can do a full copy to make sure that the
buffers are in a consistent state.
BUG=chrome-os-partner:36554, 511446
TEST=Ran on daisy, peach_pi and rockchip to verify that the device
startup up and produces frames.
Review URL: https://codereview.chromium.org/1359423002
Cr-Commit-Position: refs/heads/master@{#350376}
(cherry picked from commit b76c26887404294611d9ab3b03913fd52d0eb289)
[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
Review URL: https://codereview.chromium.org/1327413003
Cr-Commit-Position: refs/heads/master@{#348496}
(cherry picked from commit 569ff0f367864bc65b8abaaab4dec1e57d25ac93)
Force swap buffers when re-creating the buffers
The SwapResult provides a way to signal when the buffers are no longer
adequate and need to be re-allocated. Currently the surfaceless
implementation of the GpuBrowserCompositorOutputSurface will re-allocate
the buffers, however it doesn't swap again. Since the previous buffer
was rejected the display is showing an old frame.
BUG=511446
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1327343003
Cr-Commit-Position: refs/heads/master@{#348246}
(cherry picked from commit 61df9d531b103895877d163c1635bac16d686952)
Force 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
Review URL: https://codereview.chromium.org/1334483002
Cr-Commit-Position: refs/heads/master@{#347933}
(cherry picked from commit 5bfd1d7ea19dae7cca921afa01cb0913d99514c0)
Committed: https://chromium.googlesource.com/chromium/src/+/ddeb7c6afd2215697e656fb09b1f844623846688
Patch Set 1 #
Messages
Total messages: 1 (0 generated)
|