When turning off Accelerated Compositing, we hit one of the ASSERT(willBeComposited == needsToBeComposited(layer)); assertions in RenderLayerCompositor::computeCompositingRequirements().
Created attachment 61724 [details] Patch
Comment on attachment 61724 [details] Patch Does this fix only the assertion, or does it affect behavior too? If it does have an effect on behavior, what is that effect?
There is no change in behavior; we used to do a bit of extra work for the one call to computeCompositingRequirements() after compositing was disabled, because we thought we needed to make layers, and then when we tried to, noticed that m_hasAcceleratedCompositing was false. With the patch we never even try to make layers in that situation.
http://trac.webkit.org/changeset/63573
*** Bug 42582 has been marked as a duplicate of this bug. ***
I have a similar issue: https://bugs.webkit.org/show_bug.cgi?id=74511. When running fast/multicol/pagination-v-vertical-lr.html it hits the assertion in RenderLayerCompositor: // If we just entered compositing mode, the root will have become composited (as long as accelerated compositing is enabled). if (layer->isRootLayer()) { if (inCompositingMode() && m_hasAcceleratedCompositing) willBeComposited = true; } ASSERT(willBeComposited == needsToBeComposited(layer)); <<<<<<<<<< In this case the layer is a root layer, and both inCompositingMode() and m_hasAcceleratedCompositing are true, but needsToBeComposited(layer) is false because layer->isNormalFlowOnly() => !layer->isSelfPaintingLayer() => !canBeComposited(layer) Do you think another condition could be sufficient? i.e: -if (layer->isRootLayer()) { +if (layer->isRootLayer() && canBeComposited(layer)) Thanks in advance to your help!
(In reply to comment #6) > I have a similar issue: https://bugs.webkit.org/show_bug.cgi?id=74511. When running fast/multicol/pagination-v-vertical-lr.html it hits the assertion in RenderLayerCompositor: Please file a new bug for this assertion. > In this case the layer is a root layer, and both inCompositingMode() and m_hasAcceleratedCompositing are true, but needsToBeComposited(layer) is false because layer->isNormalFlowOnly() => !layer->isSelfPaintingLayer() => !canBeComposited(layer) > Do you think another condition could be sufficient? i.e: > -if (layer->isRootLayer()) { > +if (layer->isRootLayer() && canBeComposited(layer)) If the root layer cannot be composited, then all kinds of stuff will break. I think we'll have to fix this another way.
(In reply to comment #7) > (In reply to comment #6) > > I have a similar issue: https://bugs.webkit.org/show_bug.cgi?id=74511. When running fast/multicol/pagination-v-vertical-lr.html it hits the assertion in RenderLayerCompositor: > > Please file a new bug for this assertion. Filed https://bugs.webkit.org/show_bug.cgi?id=74999.