Bug 40547 - Avoid using backing store for compositing layers that just need to clip
Summary: Avoid using backing store for compositing layers that just need to clip
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: All OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
Keywords: InRadar
Depends on:
Reported: 2010-06-13 11:20 PDT by Simon Fraser (smfr)
Modified: 2012-04-16 15:22 PDT (History)
8 users (show)

See Also:

Patch (29.31 KB, patch)
2012-04-13 17:43 PDT, Simon Fraser (smfr)
dino: review+
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ec2-cr-linux-04 (6.44 MB, application/zip)
2012-04-14 08:12 PDT, WebKit Review Bot
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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
Comment 2 Simon Fraser (smfr) 2012-04-13 17:43:03 PDT
Created attachment 137188 [details]
Comment 3 WebKit Review Bot 2012-04-14 08:02:20 PDT
Comment on attachment 137188 [details]

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

New failing tests:
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]

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
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.