[Webkit-unassigned] [Bug 103237] Performance gain for Animations using CSS 2D transforms while leveraging GPU accelerated compositing

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 29 02:40:41 PST 2012


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


Dean Jackson <dino at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dino at apple.com




--- Comment #4 from Dean Jackson <dino at apple.com>  2012-11-29 02:42:57 PST ---
(In reply to comment #2)
> Created an attachment (id=176131)
 --> (https://bugs.webkit.org/attachment.cgi?id=176131&action=review) [details]
> The PerfMarks benchmark for CSS transformation test
> 
> Here I attached the benchmark for this case and we got poor scores for CSS 2D Scale and Rotate categories under Chrome and the scores is far behind the scores under IE.
> This benchmark simply calls CSS3 2D transform methods continually to make the animations and WebKit seems only use software rendering for all the CSS3 2D transforms. I found out the performance may gain much if we introduce new compositing layers and leverage GPU accelerated compositing for these typical cases. So is it available to introduce compositing layers for these cases?

Sure, this could be done. In fact, our original implementation did. The problem is that it has a negative impact on memory use. That's why we moved to the non-composited mode.

If the benchmark is updating 2D transforms continually using script, then we could possibly optimize for this case. I wouldn't want to always have 2d transforms create compositing layers - it's a waste of memory and GPU resources for static content. We actually have a nice medium at the moment which, like it or not, the community has adopted: if you're going to update 2d transforms by script a lot, then force the element into compositing mode, usually by making the 2d look as if it is a 3d transform.

I know there is some code that puts images on a fast path if they are being resized continually. It's possible that we could do something similar. Detect this type of use for 2d transforms, and jump into composited mode for a bit. Note however, that moving an element between composited and non-composited is not free.

To repeat, I don't think we should always composite 2d transforms.

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