[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
Wed Jun 13 18:18:41 PDT 2012


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





--- Comment #31 from zlieber at chromium.org  2012-06-13 18:18:40 PST ---
(From update of attachment 147153)
View in context: https://bugs.webkit.org/attachment.cgi?id=147153&action=review

>>>>>> Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp:294
>>>>>> +    }
>>>>> 
>>>>> As per offline I'm not sure about this being in CCLayerImpl since it depends on state from calcDrawEtc. But we do have lots of other getters like this, all the drawFoo() ones so maybe my feeling is misplaced.
>>>> 
>>>> I don't really like the potential O(n^2) walk through layers.
>>>> 
>>>> Could calcDraw do the correct surface property changed propagation (or conversion to recursive layer property changed) as it determines what gets a surface and what doesn't? Or, is there some other way to maybe more explicitly propagate these flags?
>>> 
>>> For this one how about we fall back on propagating it the same way layerPropertyChanged is - every time it is set? Except we have to stop at surface-owning layers for this to be correct.
>> 
>> That last bit is why we can't. We don't know surfaces when we set these flags.
> 
> Oh yeah that's right, forgot about this.
> 
> As I was dumping layer trees debugging this, I found they are for most part pretty flat. Is O(n^2) a realistic possibility here?
> 
> I can come up with a separate walk that will propagate the flag, but it will be way more code, and will be much slower in most realistic cases, though technically O(n). I'd prefer not to modify calcDraw at this point as I'm not sure I can do this safely.
> 
> What do you think?

Here's one other possibility: have this getter set the flag for the entire path it just traversed in case of positive result. I.e. instead of just "return true", run up the tree again, this time setting this flag as a side-effect. This will avoid duplicating this work next time our ancestor is queried.

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