Bug 51682 - [chromium] Tiled compositor crash after recovering from lost GPU process
Summary: [chromium] Tiled compositor crash after recovering from lost GPU process
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Adrienne Walker
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-28 10:12 PST by Adrienne Walker
Modified: 2011-08-09 15:13 PDT (History)
6 users (show)

See Also:


Attachments
Patch (1.80 KB, patch)
2010-12-28 10:31 PST, Adrienne Walker
no flags Details | Formatted Diff | Diff
Patch (1.79 KB, patch)
2010-12-28 11:47 PST, Adrienne Walker
no flags Details | Formatted Diff | Diff
Ignore, wrong upload (55.43 KB, patch)
2011-08-09 15:11 PDT, Abhishek Arya
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adrienne Walker 2010-12-28 10:12:57 PST
From http://crbug.com/68151:
1. Go to http://webkit.org/blog/386/3d-transforms/ with the compositor enabled and scroll down a bit.
2. From the task manager kill the GPU process.
3. Move the mouse cursor in the window to trigger redraw.

This appears to be due to the fact that the layer is not being resized properly after the GPU process recovers and there's an assertion on an out-of-range indexing operation.
Comment 1 Adrienne Walker 2010-12-28 10:31:01 PST
Created attachment 77560 [details]
Patch
Comment 2 Kenneth Russell 2010-12-28 11:21:58 PST
Comment on attachment 77560 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=77560&action=review

> WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:402
> +    IntSize newSize(std::max(m_layerSize.width(), layerRect.right()),
> +                    std::max(m_layerSize.height(), layerRect.bottom()));

Could you use a preexisting method on IntSize to compute this? For example IntSize::expandedTo()?
Comment 3 Adrienne Walker 2010-12-28 11:47:30 PST
Created attachment 77568 [details]
Patch
Comment 4 Adrienne Walker 2010-12-28 11:48:14 PST
(In reply to comment #2)
> (From update of attachment 77560 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=77560&action=review
> 
> > WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:402
> > +    IntSize newSize(std::max(m_layerSize.width(), layerRect.right()),
> > +                    std::max(m_layerSize.height(), layerRect.bottom()));
> 
> Could you use a preexisting method on IntSize to compute this? For example IntSize::expandedTo()?

Good point.
Comment 5 Kenneth Russell 2010-12-28 12:57:12 PST
Comment on attachment 77568 [details]
Patch

Looks good.
Comment 6 WebKit Commit Bot 2010-12-28 13:54:07 PST
Comment on attachment 77568 [details]
Patch

Clearing flags on attachment: 77568

Committed r74722: <http://trac.webkit.org/changeset/74722>
Comment 7 WebKit Commit Bot 2010-12-28 13:54:12 PST
All reviewed patches have been landed.  Closing bug.
Comment 8 Abhishek Arya 2011-08-09 15:11:46 PDT
Created attachment 103405 [details]
Ignore, wrong upload
Comment 9 Abhishek Arya 2011-08-09 15:12:55 PDT
sorry, wrong upload, please ignore.