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

Issue 212103005: Retry gpu compositing when fallback is not true. (Closed)

Created:
6 years, 9 months ago by danakj
Modified:
6 years, 9 months ago
Reviewers:
jbauman, piman
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, Ken Russell (switch to Gerrit), jamesr, boliu, vmpstr
Visibility:
Public.

Description

Retry gpu compositing when fallback is not true. If the GPU process goes down, and the renderer tries to recreate its context too soon, it will fail. We should retry using GPU compositing until fallback is given as true from the compositor to allow fallback into software compositing. R=jbauman@chromium.org, piman@chromium.org BUG=356453, 327220 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=259668

Patch Set 1 : retry-gpu-compositing: #

Total comments: 5

Patch Set 2 : retry-gpu-compositing: checksoftware #

Patch Set 3 : retry-gpu-compositing: simpler #

Unified diffs Side-by-side diffs Delta from patch set Stats (+25 lines, -18 lines) Patch
M content/renderer/render_widget.cc View 1 2 1 chunk +25 lines, -18 lines 0 comments Download

Messages

Total messages: 15 (0 generated)
danakj
6 years, 9 months ago (2014-03-26 15:00:21 UTC) #1
jbauman
https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc#newcode938 content/renderer/render_widget.cc:938: if (!context_provider.get() && !fallback) { We should check for ...
6 years, 9 months ago (2014-03-26 17:17:25 UTC) #2
danakj
https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc#newcode938 content/renderer/render_widget.cc:938: if (!context_provider.get() && !fallback) { On 2014/03/26 17:17:26, jbauman ...
6 years, 9 months ago (2014-03-26 17:21:21 UTC) #3
danakj
PTAL https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/212103005/diff/1/content/renderer/render_widget.cc#newcode938 content/renderer/render_widget.cc:938: if (!context_provider.get() && !fallback) { On 2014/03/26 17:21:22, ...
6 years, 9 months ago (2014-03-26 17:22:39 UTC) #4
jbauman
lgtm
6 years, 9 months ago (2014-03-26 17:30:20 UTC) #5
danakj
piman PTAL for OWNERS
6 years, 9 months ago (2014-03-26 17:34:00 UTC) #6
piman
LGTM to unblock, but, do you know why the renderer fails to create its context? ...
6 years, 9 months ago (2014-03-26 18:17:12 UTC) #7
danakj
I guess I'll land this for the GPU bots though to green up.
6 years, 9 months ago (2014-03-26 18:24:13 UTC) #8
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 9 months ago (2014-03-26 18:24:20 UTC) #9
danakj
On Wed, Mar 26, 2014 at 2:17 PM, <piman@chromium.org> wrote: > LGTM to unblock, but, ...
6 years, 9 months ago (2014-03-26 18:24:23 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/212103005/80001
6 years, 9 months ago (2014-03-26 18:25:15 UTC) #11
danakj
On 2014/03/26 18:17:12, piman wrote: > LGTM to unblock, but, do you know why the ...
6 years, 9 months ago (2014-03-26 18:54:29 UTC) #12
danakj
On 2014/03/26 18:54:29, danakj wrote: > On 2014/03/26 18:17:12, piman wrote: > > LGTM to ...
6 years, 9 months ago (2014-03-26 19:24:59 UTC) #13
commit-bot: I haz the power
Change committed as 259668
6 years, 9 months ago (2014-03-26 19:59:44 UTC) #14
danakj
6 years, 9 months ago (2014-03-26 23:08:24 UTC) #15
Message was sent while issue was closed.
On 2014/03/26 19:24:59, danakj wrote:
> On 2014/03/26 18:54:29, danakj wrote:
> > On 2014/03/26 18:17:12, piman wrote:
> > > LGTM to unblock, but, do you know why the renderer fails to create its
> > context?
> > > We used to block the reply in the GpuMessageFilter to wait until the UI
has
> > > recreated its context, to make sure both the UI and the renderer talk to
the
> > > same GPU process. Is that not happening any more?
> > 
> > What happens is that after chrome://gpucrash, the next EstablishGpuChannel
is
> > returning channel_handle.socket.fd = -1, and channel_handle.name = "". So I
> > guess it is not blocking.
> > 
> > What looks like another renderer trying the same thing, does work correctly
> > shortly after in the log.
> > 
> > Going deeper.
> 
> We go to GpuMessageFilter::OnEstablishGpuChannel.
> It gets a host from GpuProcessHost::FromID. So the host is valid at that
point.
> We call into GpuProcessHost::EstablishGpuChannel.
> 
> We send a GpuMsg_EstablishChannel successfully.
> 
> Then we hit GpuProcessHost::OnProcessCrashed, which does
> GpuProcessHost::SendOutstandingReplies, which sends back failed channels to
the
> renderer.
> 
> Any requests that come in after the OnProcessCrashed will succeed.

Analysis/discussion of how to improve this situation moved to here:
https://code.google.com/p/chromium/issues/detail?id=356876

Powered by Google App Engine
This is Rietveld 408576698