Bug 80877

Summary: Avoid allocating huge layers for an element with a positioned child outside of its bounds
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: bdakin, cmuppala, dev+webkit, enne, igor.oliveira, jchaffraix, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Interactive testcase
none
Screenshot
none
WIP patch none

Simon Fraser (smfr)
Reported 2012-03-12 13:37:06 PDT
In compositing scenarios like the one in the screenshot, we should put the gray box into its own layer, since it sits far outside of its parent, and backing store usage would be much lower that way.
Attachments
Interactive testcase (5.34 KB, text/html)
2012-03-12 18:15 PDT, Simon Fraser (smfr)
no flags
Screenshot (30.55 KB, image/png)
2012-07-26 17:02 PDT, Simon Fraser (smfr)
no flags
WIP patch (4.86 KB, patch)
2012-07-29 17:36 PDT, Simon Fraser (smfr)
no flags
Simon Fraser (smfr)
Comment 1 2012-03-12 18:15:50 PDT
Created attachment 131480 [details] Interactive testcase
Simon Fraser (smfr)
Comment 2 2012-07-26 17:02:25 PDT
Created attachment 154792 [details] Screenshot
Simon Fraser (smfr)
Comment 3 2012-07-28 20:02:55 PDT
This is proving hard to fix. I have a patch, but it causes clip rect assertions. If we break apart a single compositing layer into multiple layers, then a layer RenderLayer B can have a parent, RenderLayer A, that is not its stacking context. When computing clip rects for A, it acts as the clipping root. When computing clip rects for B, we walk up through A, but are using a different clipping root. So we hit assertions.
Radar WebKit Bug Importer
Comment 4 2012-07-29 17:33:28 PDT
Simon Fraser (smfr)
Comment 5 2012-07-29 17:34:29 PDT
Simon Fraser (smfr)
Comment 6 2012-07-29 17:36:34 PDT
Created attachment 155189 [details] WIP patch
Simon Fraser (smfr)
Comment 7 2012-07-30 14:22:27 PDT
The clip rect assertion is present before this patch.
Note You need to log in before you can comment on or make changes to this bug.