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

Issue 270633008: Check for a restarted GPU process in OnCreateViewCommandBuffer. (Closed)

Created:
6 years, 7 months ago by Ken Russell (switch to Gerrit)
Modified:
6 years, 7 months ago
Reviewers:
piman
CC:
chromium-reviews, darin-cc_chromium.org, jam, bajones, Zhenyao Mo, danakj
Visibility:
Public.

Description

Check for a restarted GPU process in OnCreateViewCommandBuffer. Both OnEstablishGpuChannel and OnCreateViewCommandBuffer must handle the case where the GPU process was lost and restarted for correctness. This doesn't fix all of the flakiness of the context_lost stress test on the Mac Debug GPU bots, but is a necessary first step. BUG=365904 TEST=src/content/test/gpu/run_gpu_test.py context_lost --browser=debug --show-stdout -v --page-filter=WebGLContextLostFromGPUProcessExit --page-repeat=30 --extra-browser=args="--enable-logging --vmodule=*content/browser/gpu*=2,*content/common/gpu/client*=2"

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+29 lines, -15 lines) Patch
M content/browser/renderer_host/gpu_message_filter.h View 3 chunks +3 lines, -1 line 0 comments Download
M content/browser/renderer_host/gpu_message_filter.cc View 3 chunks +26 lines, -14 lines 2 comments Download

Messages

Total messages: 5 (0 generated)
Ken Russell (switch to Gerrit)
Please review. Thanks.
6 years, 7 months ago (2014-05-08 02:57:33 UTC) #1
piman
https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_host/gpu_message_filter.cc File content/browser/renderer_host/gpu_message_filter.cc (right): https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_host/gpu_message_filter.cc#newcode184 content/browser/renderer_host/gpu_message_filter.cc:184: CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE); So, relaunching the GPU process is not actually ...
6 years, 7 months ago (2014-05-08 03:29:21 UTC) #2
Ken Russell (switch to Gerrit)
+danakj https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_host/gpu_message_filter.cc File content/browser/renderer_host/gpu_message_filter.cc (right): https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_host/gpu_message_filter.cc#newcode184 content/browser/renderer_host/gpu_message_filter.cc:184: CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE); On 2014/05/08 03:29:21, piman wrote: > So, ...
6 years, 7 months ago (2014-05-09 01:36:13 UTC) #3
danakj
On 2014/05/09 01:36:13, Ken Russell wrote: > +danakj > > https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_host/gpu_message_filter.cc > File content/browser/renderer_host/gpu_message_filter.cc (right): ...
6 years, 7 months ago (2014-05-09 17:15:35 UTC) #4
Ken Russell (switch to Gerrit)
6 years, 7 months ago (2014-05-09 22:52:59 UTC) #5
On 2014/05/09 17:15:35, danakj wrote:
> On 2014/05/09 01:36:13, Ken Russell wrote:
> > +danakj
> > 
> >
>
https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_hos...
> > File content/browser/renderer_host/gpu_message_filter.cc (right):
> > 
> >
>
https://codereview.chromium.org/270633008/diff/1/content/browser/renderer_hos...
> > content/browser/renderer_host/gpu_message_filter.cc:184:
> > CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE);
> > On 2014/05/08 03:29:21, piman wrote:
> > > So, relaunching the GPU process is not actually good, because while it
will
> > give
> > > you a context, it will be on a different channel than the GpuChannelHost
you
> > > asked it from.
> > > So on the renderer side, you will have a discrepancy, and trying to send
> > > messages to this command buffer will go on the wrong/old channel and fail.
> > > 
> > > I think we had a discussion about this with Dana, and the conclusion was
> IIRC
> > > that we should handle this on the renderer side, if the
> > CreateViewCommandBuffer
> > > fails, that should trigger failure of the GpuChannelHost.
> > > 
> > > I think that's https://code.google.com/p/chromium/issues/detail?id=356876
> > 
> > Thanks for the feedback. I'll redo this as a check in the renderer process
and
> > lose the GpuChannelHost from the RenderThreadImpl if this happens.
> > 
> > Currently tracking down remaining race conditions even if this bug were
fixed.
> > Will post either an updated CL or a new one once everything is working
> reliably.
> 
> Cool, I'm not currently writing anything for
> https://code.google.com/p/chromium/issues/detail?id=356876. Looking forward to
> seeing your future work here.

Closing this CL in favor of https://codereview.chromium.org/277113002 , which
uses piman's suggestion and fixes all the flakiness of this test I can reproduce
locally on Mac OS.

Powered by Google App Engine
This is Rietveld 408576698