[Webkit-unassigned] [Bug 75883] [Qt][WK2] WebProcesses crashes when composited reflections/masks are present
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jan 11 06:21:46 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=75883
--- Comment #5 from Simon Hausmann <hausmann at webkit.org> 2012-01-11 06:21:46 PST ---
(From update of attachment 121843)
View in context: https://bugs.webkit.org/attachment.cgi?id=121843&action=review
Most of it makes sense to me, but I have a couple of questions where answers would help me to understand your patch better :)
> Source/WebCore/ChangeLog:13
> + (WebCore::TextureMapperNode::collectVisibleContentsRects):
Can you elaborate about this part of your change?
> Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:257
> + if (m_state.tileOwnership == ExternallyManagedTiles) {
> + HashMap<int, ExternallyManagedTile>::iterator end = m_externallyManagedTiles.end();
> + for (HashMap<int, ExternallyManagedTile>::iterator mapIterator = m_externallyManagedTiles.begin(); mapIterator != end; ++mapIterator) {
> + if (mapIterator->second.frontBuffer.texture)
> + return mapIterator->second.frontBuffer.texture.get();
> + }
So this simply returns the texture of the first tile that has one, right?
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:382
> + if (layer)
> + toWebGraphicsLayer(layer)->setLayerTreeTileClient(layerTreeTileClient());
I notice that setReplicatedByLayer sets the layer tree client before notifyChange() and setMaskLayer() sets it afterwards. Is there any chance that could make a difference? (seems unlikely to me, but you know the code better, so I thought I'd mention it :)
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:414
> - if (replicaLayer())
> - replicaLayer()->syncCompositingState(rect);
> - if (maskLayer())
> - maskLayer()->syncCompositingState(rect);
> +
> + if (WebGraphicsLayer* mask = toWebGraphicsLayer(maskLayer()))
> + mask->syncCompositingStateForThisLayerOnly();
> +
> + if (WebGraphicsLayer* replica = toWebGraphicsLayer(replicaLayer()))
> + replica->syncCompositingStateForThisLayerOnly();
Aha, is this an optimization based on the fact that mask or replica layers cannot have children?
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:536
> - if (m_image)
> + if (!drawsContent())
This as well as the removal of the comment are subtle ;). Can you explain these two changes?
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list