Bug 96585

Summary: [chromium] NOT FOR REVIEW - gpu memmgr context lost prototype
Product: WebKit Reporter: Christopher Cameron <ccameron>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WONTFIX    
Severity: Normal CC: kbr, nduca, schenney
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Christopher Cameron 2012-09-12 17:54:18 PDT
[chromium] NOT FOR REVIEW - gpu memmgr context lost prototype
Comment 1 Christopher Cameron 2012-09-12 17:54:30 PDT
Created attachment 163750 [details]
Patch
Comment 2 WebKit Review Bot 2012-09-12 17:57:58 PDT
Attachment 163750 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h:53:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 James Robinson 2012-09-12 17:59:20 PDT
Comment on attachment 163750 [details]
Patch

Upload with --no-review if it's not ready for review - if the flag it set it goes into http://webkit.org/pending-review
Comment 4 Christopher Cameron 2012-09-12 18:01:56 PDT
(In reply to comment #3)
> (From update of attachment 163750 [details])
> Upload with --no-review if it's not ready for review - if the flag it set it goes into http://webkit.org/pending-review

Thanks -- sorry!
Comment 5 Christopher Cameron 2012-09-12 18:02:17 PDT
This works ONLY with threaded compositing (single-threaded hangs).  It also flashes checkerboards when switching to a tab that has had its context destroyed.

There are prints added that should add something like:
    <onControlledLostContext>
        In GPU process: GLContext::~GLContext (8 contexts exist)
    </onControlledLostContext>

The destruction of the renderer-side context is inside the re-creation logic.  This adds a separate function that does the renderer-side context destruction.

With just this patch, you won't see the "In GPU process" stuff -- you need  https://codereview.chromium.org/10913240 as well for that.

With just this patch, you'll also lose the context as soon as you change tabs.  With the non-WebKit patch, you'll be allowed a budget of 8 contexts.