RESOLVED FIXED 116140
Direct pattern compositing breaks when no-repeat is set on a large layer
https://bugs.webkit.org/show_bug.cgi?id=116140
Summary Direct pattern compositing breaks when no-repeat is set on a large layer
Noam Rosenthal
Reported 2013-05-15 00:36:28 PDT
Direct pattern compositing breaks when no-repeat is set on a large layer
Attachments
Patch (4.52 KB, patch)
2013-05-15 00:40 PDT, Noam Rosenthal
no flags
Patch (4.46 KB, patch)
2013-05-15 00:49 PDT, Noam Rosenthal
no flags
Patch (4.47 KB, patch)
2013-05-17 05:47 PDT, Noam Rosenthal
no flags
Patch (4.39 KB, patch)
2013-05-24 09:21 PDT, Noam Rosenthal
no flags
Patch for landing (4.52 KB, patch)
2013-05-25 01:28 PDT, Noam Rosenthal
no flags
Noam Rosenthal
Comment 1 2013-05-15 00:40:00 PDT
Csaba Osztrogonác
Comment 2 2013-05-15 00:47:26 PDT
Comment on attachment 201797 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201797&action=review > LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat-expected.html:8 > + background-image: url(http://achicu.github.io/css-presentation/images/webkit-icon.png); Do we really want to depend on an external image? > LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat.html:8 > + background-image: url(http://achicu.github.io/css-presentation/images/webkit-icon.png); ditto
Noam Rosenthal
Comment 3 2013-05-15 00:49:11 PDT
Noam Rosenthal
Comment 4 2013-05-15 00:49:37 PDT
(In reply to comment #2) > (From update of attachment 201797 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=201797&action=review > > > LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat-expected.html:8 > > + background-image: url(http://achicu.github.io/css-presentation/images/webkit-icon.png); > > Do we really want to depend on an external image? > > > LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat.html:8 > > + background-image: url(http://achicu.github.io/css-presentation/images/webkit-icon.png); > > ditto Oops, of course not :)
Benjamin Poulain
Comment 5 2013-05-15 13:53:06 PDT
Comment on attachment 201798 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201798&action=review > LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat-expected.html:4 > + .composited { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1); } I'd remove this from the reference.
Simon Fraser (smfr)
Comment 6 2013-05-15 13:57:38 PDT
Comment on attachment 201798 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201798&action=review > Source/WebCore/ChangeLog:10 > + Making sure that the solid color logic only overrides the cotnentsRect if the background Typo cotnentsRect > Source/WebCore/rendering/RenderLayerBacking.cpp:894 > updateDirectlyCompositedBackgroundImage(isSimpleContainer, didUpdateContentsRect); > + if (didUpdateContentsRect) > + return; > updateDirectlyCompositedBackgroundColor(isSimpleContainer, didUpdateContentsRect); It's not clear why you should bail if didUpdateContentsRect is true. Does that mean you chose to use the background image path? Why does didUpdateContentsRect indicate that, rather than the return value? >> LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat-expected.html:4 >> + .composited { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1); } > > I'd remove this from the reference. Composited vs. non-composted refs break on Mac, alas. But this should use translateZ() or something less mysterious.
Noam Rosenthal
Comment 7 2013-05-15 14:06:12 PDT
> It's not clear why you should bail if didUpdateContentsRect is true. Does that mean you chose to use the background image path? Why does didUpdateContentsRect indicate that, rather than the return value? > Right, I'll change it to be a return value. > >> LayoutTests/compositing/patterns/direct-pattern-compositing-contain-no-repeat > > Composited vs. non-composted refs break on Mac, alas. Is that going to be fixed as we discussed at the summit, or should I make this into a regular pixel test? Ref-tests seem like the right choice here given that the platform supports them. > But this should use translateZ() or something less mysterious. Sure :)
Noam Rosenthal
Comment 8 2013-05-17 05:47:32 PDT
Noam Rosenthal
Comment 9 2013-05-24 09:21:48 PDT
Antti Koivisto
Comment 10 2013-05-24 09:24:32 PDT
Comment on attachment 202829 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=202829&action=review > Source/WebCore/rendering/RenderLayerBacking.cpp:879 > - updateDirectlyCompositedBackgroundImage(isSimpleContainer, didUpdateContentsRect); > updateDirectlyCompositedBackgroundColor(isSimpleContainer, didUpdateContentsRect); > + updateDirectlyCompositedBackgroundImage(isSimpleContainer, didUpdateContentsRect); Would be good to add a comment mentioning why the order matters.
Noam Rosenthal
Comment 11 2013-05-25 01:28:50 PDT
Created attachment 202879 [details] Patch for landing
WebKit Commit Bot
Comment 12 2013-05-25 02:51:08 PDT
Comment on attachment 202879 [details] Patch for landing Clearing flags on attachment: 202879 Committed r150685: <http://trac.webkit.org/changeset/150685>
WebKit Commit Bot
Comment 13 2013-05-25 02:51:11 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.