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

Issue 903933005: Android: Fix GPU recovery issues (Closed)

Created:
5 years, 10 months ago by no sievers
Modified:
5 years, 10 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Android: Fix GPU recovery issues a) The swap accounting is a bit unreliable when the GPU process crashes or the context is lost. We might end up thinking that too many swap acks are pending (which will never arrive) and bail out of CompositorImpl::Composite() early. Ignore the swap limit when deciding to composite if we know the context was lost. Then calling Composite() will cause the output surface to get recreated. b) Fix infinite retry loops of which there are two: One is that we could indefinitely early-out of Composite() and repost if the GPU process keeps crashing at startup before LTH ever gets a chance to try create a context. Fix regression with https://codereview.chromium.org/738983002/ which both removed the LOG(FATAL) for too many successive retry attempts (used to happen inside LTH), and added a similar retry loop where we might never call SetOutputSurface and keep relaunching the GPU process. Also essentially revert https://codereview.chromium.org/750643003/ to simplify things. We don't need to early-out in Composite() anymore if the GPU channel is lost. This is handled better in cc now and we can just attempt to Composite(). It will schedule OutputSurface creation. Even if we call Composite() again in the meantime, that should be harmless. And after we eventually call SetOutputSurface(), this will trigger ScheduleComposite(). BUG=453511, 453671, 453819, 453649, 448549 NOTRY=True Committed: https://crrev.com/bce21923514e1b1d92d5dd743785830fe9c10ad3 Cr-Commit-Position: refs/heads/master@{#315390}

Patch Set 1 #

Patch Set 2 : fix retry loops #

Patch Set 3 : address Eric's offline comment #

Patch Set 4 : cancel OS tasks when LTH gets destroyed #

Patch Set 5 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+32 lines, -49 lines) Patch
M content/browser/renderer_host/compositor_impl_android.h View 1 2 3 4 4 chunks +8 lines, -8 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.cc View 1 2 3 4 7 chunks +24 lines, -41 lines 0 comments Download

Messages

Total messages: 14 (6 generated)
no sievers
ptal, the conservative fix, but adds yet more state to CompositorImpl :( With https://codereview.chromium.org/344743002/ this ...
5 years, 10 months ago (2015-02-06 22:27:27 UTC) #2
no sievers
removed tracking output surface validity in CompositorImpl, and just ask LTH.
5 years, 10 months ago (2015-02-07 00:15:05 UTC) #4
epennerAtGoogle
On 2015/02/07 00:15:05, sievers wrote: > removed tracking output surface validity in CompositorImpl, and just ...
5 years, 10 months ago (2015-02-07 00:16:17 UTC) #5
enne (OOO)
lgtm too. Getting rid of defer_composite_for_gpu_channel_ is nice.
5 years, 10 months ago (2015-02-07 00:46:13 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/903933005/80001
5 years, 10 months ago (2015-02-09 20:25:12 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/903933005/80001
5 years, 10 months ago (2015-02-09 21:00:54 UTC) #12
commit-bot: I haz the power
Committed patchset #5 (id:80001)
5 years, 10 months ago (2015-02-09 21:01:59 UTC) #13
commit-bot: I haz the power
5 years, 10 months ago (2015-02-09 21:02:40 UTC) #14
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/bce21923514e1b1d92d5dd743785830fe9c10ad3
Cr-Commit-Position: refs/heads/master@{#315390}

Powered by Google App Engine
This is Rietveld 408576698