[Webkit-unassigned] [Bug 56156] Add setting to always force compositing mode

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 15 11:37:36 PDT 2011


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





--- Comment #9 from Daniel Sievers <sievers at google.com>  2011-03-15 11:37:35 PST ---
(In reply to comment #7)
> > > > Source/WebCore/rendering/RenderLayerCompositor.cpp:114
> > > > +    if (settings && settings->alwaysEnterCompositing()) {
> > > 
> > > We also need to test for m_hasAcceleratedCompositing.  That value is not available at the time the constructor gets called.  Things work fine since there's a check at the end of updateCompositingLayers but it seems somewhat inefficient to go ahead and do all the work, create the GraphicsLayer tree and then gut it all out of compositing isn't supported.
> > 
> > 
> > Ok, I added a check for settings->acceleratedCompositingEnabled() in the constructor...
> > 
> > 
> 
> I don't think that test is sufficient.  There's a couple of other conditions that will turn m_hasAcceleratedCompositing off, especially bits that are set on the Client.  If you do keep this code in the constructor (which is probably fine) then there's not much point in adding that check. 
> 

I see, RenderLayerCompositor::m_hasAcceleratedCompositing gets turned off if all compositing triggers are off, which we could simply skip with 'force compositing' turned on.
If it wasn't for the case where the LayerRendererChromium creation fails, and Chrome decides to return zero from allowedCompositingTriggers() late in the game to handle that case and turn off compositing.

The check in the RenderLayerCompositor constructor is probably still good to handle other cases where compositing is explicitly turned off (such as through the conflicting cmdline option --disable-accelerated-compositing). 

Maybe for the other unexpected failure cases it is ok to first try to force compositing and then go roundabout and turn it off later?
I'm assuming RenderLayerCompositor might get created before we know (and might fail) creating LayerRendererChromium anyways.

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