[Webkit-unassigned] [Bug 88482] [Chromium] Compositor should avoid drawing quads when cached textures are available and contents unchanged

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 12 13:55:52 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=88482





--- Comment #16 from Shawn Singh <shawnsingh at chromium.org>  2012-06-12 13:55:51 PST ---
(In reply to comment #15)
> (In reply to comment #10)
> > 
> > > Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp:261
> > > +    if (layerIsNew || layer->layerTargetSurfaceDirty()) {
> > 
> > I think Dana mentioned that it might be worth moving layerTargetSurfaceDirty() logic to the damage tracker as a static helper function.   I agree with that, but for more reasons - in my opinion this functionality is not meaningful outside of damage tracking, and it could be error-prone/confusing/mis-used if we make it available as an accessor on layers.
> 
> > 
> > > Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:318
> > > +    // of the target surface of this layer's target surface
> > 
> > "but would require redrawing the targetSurface onto its ancestor targetSurface"
> > Also, the comment should probably also clarify what happens with this flag if the layer does not own a renderSurface.
> 
> Well... the answer to this is "for layers that do not own a surface this flag acts as layerPropertyChanged". But this is exactly the documentation of a function which you & Dana asked me to move to DamageTracker because it doesn't belong in the layer.
> 
> So my question is - how come the algorithm doesn't belong in the layer, but its description does?
> 
> For this patch I already move the function, but we really, really need to consider this strategy.

I'm a little confused... I don't think Dana and I were asking to move this m_layerSurfacePropertyChanged flag to the damage tracker?   so this comment and the explanation of what it represents would still remain here?

We were proposing to move the layerChangesWillAffectTargetSurfaceContents() computation.  I think its reasonable to see it both ways - you see it as a minor translation between existing layer properties which fits on the layer itself, but personally I see it as code that answers a question that only the damage tracker should be asking.

As for reconsidering the design strategy of this code, we should include a larger group of teammates in that discussion.  I suspect any ideal solution will be quite disruptive, and it might be necessary to incrementally evolve towards a better design than to fix it all at once -- which is what we have been doing =)

-- 
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