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

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 15 14:22:35 PDT 2011


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





--- Comment #10 from Vangelis Kokkevis <vangelis at chromium.org>  2011-03-15 14:22:34 PST ---
(In reply to comment #9)
> (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.

Ok, I see what you mean.  It sounds reasonable to me to leave to code as is.  Please do test though that it still works (and correctly falls back to s/w) if the layer renderer creation fails.

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