[webkit-reviews] review denied: [Bug 49998] Allow ports finer-grain control of when to enable accelerated compositing : [Attachment 74768] proposed patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Nov 26 10:40:51 PST 2010


Simon Fraser (smfr) <simon.fraser at apple.com> has denied Vangelis Kokkevis
<vangelis at chromium.org>'s request for review:
Bug 49998: Allow ports finer-grain control of when to enable accelerated
compositing
https://bugs.webkit.org/show_bug.cgi?id=49998

Attachment 74768: proposed patch
https://bugs.webkit.org/attachment.cgi?id=74768&action=review

------- Additional Comments from Simon Fraser (smfr) <simon.fraser at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=74768&action=review

I wonder if a bitfield could be used in the call through to ChromeClient, and
for storage in RLC?

> WebCore/css/MediaQueryEvaluator.cpp:484
> -	   threeDEnabled = view->compositor()->hasAcceleratedCompositing();
> +	   threeDEnabled = view->compositor()->hasAcceleratedCompositing()
> +			   &&
frame->page()->chrome()->client()->allowsAcceleratedCompositingFor3DTransforms(
);

I think RenderLayerCompositor should have a canRender3DTransforms() method.

> WebCore/page/ChromeClient.h:248
> +	   // Returns true if 3d transforms can trigger the accelerated
compositor.
> +	   virtual bool allowsAcceleratedCompositingFor3DTransforms() const {
return true; }
> +	   // Returns true if video can trigger the accelerated compositor.
> +	   virtual bool allowsAcceleratedCompositingForVideo() const { return
true; }
> +	   // Returns true if canvas can trigger the accelerated compositor.
> +	   virtual bool allowsAcceleratedCompositingForCanvas() const { return
true; }
> +	   // Returns true if plugins can trigger the accelerated compositor.
> +	   virtual bool allowsAcceleratedCompositingForPlugin() const { return
true; }
> +	   // Returns true if css animation can trigger the accelerated
compositor.
> +	   virtual bool allowsAcceleratedCompositingForAnimation() const {
return true; }

I agree that a single method with an enum argument would be better here.

> WebCore/rendering/RenderLayer.cpp:249
>  bool RenderLayer::hasAcceleratedCompositing() const
>  {
>  #if USE(ACCELERATED_COMPOSITING)
> -    return compositor()->hasAcceleratedCompositing();
> +    return compositor()->hasAcceleratedCompositing() &&
compositor()->inCompositingMode();
>  #else
>      return false;
>  #endif

I think this method should be removed, and callers should use
compositor()->canRender3DTransforms().


More information about the webkit-reviews mailing list