[Webkit-unassigned] [Bug 70634] Mark GraphicsLayers as opaque when possible
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Nov 29 14:09:35 PST 2011
https://bugs.webkit.org/show_bug.cgi?id=70634
--- Comment #82 from Dana Jansens <danakj at chromium.org> 2011-11-29 14:09:33 PST ---
(From update of attachment 116768)
View in context: https://bugs.webkit.org/attachment.cgi?id=116768&action=review
Not sure if this would help but I can imagine splitting this into a few smaller patches if you'd like. These are all somewhat independent pieces mashed together. If not at least we can talk about them somewhat independently.
1. RenderLayerCompositor builds opaque region for a backing (uses stub RenderLayer::opaqueRegion()), and backing decides opaque flag
2. RenderLayer::contentChanged() causes its compositing backing to re-decide opaque flag.
3. Add the *AreaIsOpaqueInRect() methods to RenderBox and RBMO.
4. Have RenderLayer::opaqueRegion() test its renderer() with RBMO::isOpaque().
5. Add foregroundContentsAreaIsOpaqueInRect() for RenderImage.
> Source/WebCore/rendering/RenderImage.cpp:437
> + Image* image = m_imageResource->image(cWidth, cHeight).get();
This is the call we do not make for a canvas/webgl image when its contents are changed, as it causes a CPU readback.
> Source/WebCore/rendering/RenderLayer.h:470
> + Region opaqueRegion() const { return renderer()->isOpaqueInRect(renderer()->borderBoundingBox()) ? renderer()->borderBoundingBox() : Region(); }
I can stick this behind #ifdef USE(ACCELERATED_COMPOSITING).
--
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