Bug 40547

Summary: Avoid using backing store for compositing layers that just need to clip
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: dglazkov, dino, enne, jamesr, jchaffraix, simon.fraser, webkit-bug-importer, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: OS X 10.5   
Attachments:
Description Flags
Patch
dino: review+, webkit.review.bot: commit-queue-
Archive of layout-test-results from ec2-cr-linux-04 none

Description Simon Fraser (smfr) 2010-06-13 11:20:44 PDT
If an element becomes composited because it clips a composited child, then we currently draw it into backing store (a flashy tiled layer if necessary). We should just draw it into the window background of we can.
Comment 1 Simon Fraser (smfr) 2010-08-30 11:58:02 PDT
<rdar://problem/5667730>
Comment 2 Simon Fraser (smfr) 2012-04-13 17:43:03 PDT
Created attachment 137188 [details]
Patch
Comment 3 WebKit Review Bot 2012-04-14 08:02:20 PDT
Comment on attachment 137188 [details]
Patch

Attachment 137188 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12402479

New failing tests:
compositing/geometry/preserve-3d-switching.html
compositing/backing/no-backing-for-perspective.html
compositing/backing/no-backing-for-clip-overlap.html
compositing/overflow/overflow-positioning.html
compositing/backing/no-backing-for-clip.html
Comment 4 WebKit Review Bot 2012-04-14 08:12:57 PDT
Created attachment 137210 [details]
Archive of layout-test-results from ec2-cr-linux-04

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-04  Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'>  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Comment 5 Dean Jackson 2012-04-15 14:49:41 PDT
Comment on attachment 137188 [details]
Patch

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

r+ assuming test failures are misleading or updated.

> Source/WebCore/rendering/RenderLayerCompositor.cpp:1363
> +        || renderer->isTransparent() || renderer->hasMask() || renderer->hasReflection() || renderer->hasFilter()

I'd prefer these on separate lines just because every other test is, but I don't really care.
Comment 6 Simon Fraser (smfr) 2012-04-16 11:32:30 PDT
http://trac.webkit.org/changeset/114283
Comment 7 Adrienne Walker 2012-04-16 15:06:52 PDT
(In reply to comment #6)
> http://trac.webkit.org/changeset/114283

So, I'm confused.  The test failures were neither misleading nor updated.   How did this get checked in without fixing that?

Unsurprisingly, this exact same set of tests is now failing on the Chromium bots:  http://trac.webkit.org/changeset/114303/trunk/LayoutTests/platform/chromium/test_expectations.txt
Comment 8 Simon Fraser (smfr) 2012-04-16 15:22:52 PDT
All of the compositing tests pass on Mac.

> compositing/geometry/preserve-3d-switching.html

This needs to be rebaselined for chromium.

> compositing/backing/no-backing-for-perspective.html
> compositing/backing/no-backing-for-clip-overlap.html
> compositing/backing/no-backing-for-clip.html

For some reason chromium has different layer sizes than Mac, I've no idea why. I suggest adding platform-specific results.

> compositing/overflow/overflow-positioning.html

This looks like a colorspace change.