Here is the requirement regarding layer acceleration for blend modes: If a layer having blending is accelerated for any reason then its stacking context layer needs to be accelerated too. What happens now: 1) If a blending layer is accelerated, all its RenderLayer ascendants get accelerated. 2) If a non-accelerated layer has an accelerated sibling, then all its ascendants are accelerated.
Created attachment 227636 [details] use cases
Created attachment 227676 [details] patch v1
Created attachment 228178 [details] add ifdef to blending code, nits
Comment on attachment 228178 [details] add ifdef to blending code, nits View in context: https://bugs.webkit.org/attachment.cgi?id=228178&action=review > Source/WebCore/ChangeLog:13 > + being the closest stacking context should be accelerated as well. Probably this can be rewritten: "if a layer having blend mode is composited, its closest stacking context ancestor should be composited as well" > Source/WebCore/ChangeLog:23 > + * rendering/RenderLayerCompositor.cpp: You should mention something about the renaming of m_subtreeHasBlending => m_hasUnisolatedCompositedBlendingDescendants in CompositingState. > Source/WebCore/rendering/RenderLayer.h:789 > + bool isolatesCompositedBlending() const In general, i would like to see as much as possible code related to this feature guarded by ENABLE(CSS_COMPOSITING) > Source/WebCore/rendering/RenderLayerCompositor.cpp:-208 > - , m_subtreeHasBlending(other.m_subtreeHasBlending) Maybe you can make these bool bit fields in a follow up patch.
Created attachment 228203 [details] more comments and ifdefs
Comment on attachment 228203 [details] more comments and ifdefs Clearing flags on attachment: 228203 Committed r166634: <http://trac.webkit.org/changeset/166634>
All reviewed patches have been landed. Closing bug.