RESOLVED FIXED 99890
Fix a hang when combining tile cache layers with preserve-3d or reflections
https://bugs.webkit.org/show_bug.cgi?id=99890
Summary Fix a hang when combining tile cache layers with preserve-3d or reflections
Simon Fraser (smfr)
Reported 2012-10-19 16:48:35 PDT
Fix a hang when combining tile cache layers with preserve-3d or reflections
Attachments
Patch (15.12 KB, patch)
2012-10-19 16:55 PDT, Simon Fraser (smfr)
dino: review+
Simon Fraser (smfr)
Comment 1 2012-10-19 16:49:12 PDT
Simon Fraser (smfr)
Comment 2 2012-10-19 16:55:53 PDT
Dean Jackson
Comment 3 2012-10-19 17:06:57 PDT
Comment on attachment 169728 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review I might like to see the changelog describe why preserve-3d and reflection layers hit this. > Source/WebCore/ChangeLog:15 > + on the fact that this flag-dirtying functions get called before the later functions typo this->these > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1445 > - // Update the properties of m_layer now that we no longer have a structural layer. > - updateGeometry(pageScaleFactor, positionRelativeToBase); > - updateTransform(); > - updateChildrenTransform(); > - > + m_uncommittedChanges |= NameChanged > + | GeometryChanged > + | TransformChanged > + | ChildrenTransformChanged > + | ChildrenChanged > + | BackfaceVisibilityChanged BackfaceVisibility wasn't here before the change. Is this right? Probably a mistake that it wasn't :)
Simon Fraser (smfr)
Comment 4 2012-10-19 17:15:37 PDT
Darin Adler
Comment 5 2012-10-19 17:27:41 PDT
Comment on attachment 169728 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:333 > + ASSERT(m_layer.get() != layer->m_layer.get()); This kind of thing is supposed to work without the get(). > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:341 > + ASSERT(m_layer.get() != layer->m_layer.get()); Ditto. > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:349 > + ASSERT(m_layer.get() != layer->m_layer.get()); Again.
Simon Fraser (smfr)
Comment 6 2012-10-19 17:37:12 PDT
(In reply to comment #5) > (From update of attachment 169728 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:333 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > This kind of thing is supposed to work without the get(). > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:341 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > Ditto. > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:349 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > Again. Fixed in http://trac.webkit.org/changeset/131966.
Note You need to log in before you can comment on or make changes to this bug.