Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Issue 1370233003: Disable region copy on ARM since it isn't supported (Closed)

Created:
5 years, 2 months ago by dnicoara
Modified:
5 years, 2 months ago
Reviewers:
CC:
chromium-reviews, ozone-reviews_chromium.org, jam, sievers+watch_chromium.org, jbauman+watch_chromium.org, darin-cc_chromium.org, kalyank, piman+watch_chromium.org, cc-bugs_chromium.org, danakj+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@2454
Target Ref:
refs/pending/branch-heads/2454
Project:
chromium
Visibility:
Public.

Description

Disable 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 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+92 lines, -46 lines) Patch
M cc/surfaces/display.cc View 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/compositor/buffer_queue.cc View 2 chunks +12 lines, -10 lines 0 comments Download
M content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_surface.cc View 1 chunk +8 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_surface_unittest.cc View 5 chunks +34 lines, -28 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_window.h View 1 chunk +2 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_window.cc View 2 chunks +15 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_window_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M ui/ozone/platform/drm/gpu/screen_manager.cc View 1 chunk +12 lines, -3 lines 0 comments Download

Messages

Total messages: 1 (0 generated)
dnicoara
5 years, 2 months ago (2015-09-28 17:51:17 UTC) #1
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
ddeb7c6afd2215697e656fb09b1f844623846688 (tree was closed).

Powered by Google App Engine
This is Rietveld 408576698