Summary: | [TextureMapper] Crashed in TextureMapperLayer::paintUsingOverlapRegions | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> | ||||||||||||||||||||||
Component: | Platform | Assignee: | Fujii Hironori <Hironori.Fujii> | ||||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||||
Severity: | Normal | CC: | cgarcia, cmarcelo, don.olmstead, ews-watchlist, kondapallykalyan, luiz, magomez, noam, webkit-bug-importer, zan | ||||||||||||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||||
URL: | http://www.satine.org/research/webkit/snowleopard/snowstack.html | ||||||||||||||||||||||||
Attachments: |
|
Description
Fujii Hironori
2020-07-27 00:10:56 PDT
> #7 0x00007f1d5e5dbc8d in WebCore::TextureMapperLayer::paintUsingOverlapRegions(WebCore::TextureMapperPaintOptions const&) (this=0x7f1d04265100, options=...) at ../../Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:370 368 // Having both overlap and non-overlap regions carries some overhead. Avoid it if the overlap area 369 // is big anyway. 370 if (overlapRegion.bounds().size().area() > nonOverlapRegion.bounds().size().area()) { 371 overlapRegion.unite(nonOverlapRegion); 372 nonOverlapRegion = Region(); 373 } This code was added by r149369 (Bug 115226). Created attachment 405335 [details]
WIP patch
TextureMapperLayer::computeOverlapRegions has the following code:
> boundingRect = m_layerTransforms.combined.mapRect(boundingRect);
This code calculates a tranformed bounding rect.
The original bounding rect was the the img size of thumbnail.
It was 187x132.
Then, it was transformed into 650749x156033.
Why does it apply 3d transform to calculate a overlap region?
Created attachment 411196 [details]
test case
Created attachment 411496 [details]
WIP patch
Created attachment 411525 [details]
Patch
Comment on attachment 411525 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411525&action=review Jut a minor comment, I'll leave the actual review to Miguel > Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:326 > +void TextureMapperLayer::computeOverlapRegions(Region& overlapRegion, Region& nonOverlapRegion, ResolveSelfOverlapMode mode, IntRect clipBounds) const IntRect& clipBounds? or even IntRect&& if clipbounds is not used by the caller after this. Created attachment 411641 [details]
Patch
Thank you for the review, KaL. Addressed the point. This patch makes compositing/clipping/border-radius-stacking-context-clip.html pass unexpectedly. This seems regression, not progression. I will check it. (In reply to Fujii Hironori from comment #10) > This patch makes > compositing/clipping/border-radius-stacking-context-clip.html > pass unexpectedly. > > This seems regression, not progression. I will check it. I'm going to fix it in Bug 214868. Created attachment 412499 [details]
Patch
Oops. This patch make compositing/clipping/border-radius-stacking-context-clip.html fail again. I'll check it. (In reply to Fujii Hironori from comment #13) > Oops. This patch make > compositing/clipping/border-radius-stacking-context-clip.html fail again. > I'll check it. r269204 fixed the issue. Created attachment 412804 [details]
Patch
Created attachment 412853 [details]
Patch
Created attachment 412854 [details]
Patch
Created attachment 412867 [details]
Patch
Review? Comment on attachment 412867 [details] Patch Clearing flags on attachment: 412867 Committed r269328: <https://trac.webkit.org/changeset/269328> All reviewed patches have been landed. Closing bug. |