Bug 166055 - MotionMark / Animometer gives miss-leading results on browsers with prefixed CSS Transforms
Summary: MotionMark / Animometer gives miss-leading results on browsers with prefixed ...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-20 04:02 PST by Carlos Alberto Lopez Perez
Modified: 2016-12-20 18:52 PST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Alberto Lopez Perez 2016-12-20 04:02:04 PST
I was bisecting an issue that was reported to us related to WebKitGTK+ 2.8 obtaining much better results in MotionMark <http://browserbench.org/MotionMark/> than WebKitGTK+ 2.14.

The issue ended being that WebKitGTK+ 2.8 shipped with prefixed CSS Transforms and >= 2.10 shipped with un-prefixed ones.
Meanwhile MotionMark seems to only support the un-prefixed version of the CSS Transforms.

This are the results of WebKitGTK on a laptop on a WebKit build at:

WebKit r181832:
          Animometer:Score:Geometric: 136pt
                    Canvas Arcs:Score: 233pt
                    Canvas Lines:Score: 822pt
                    Design:Score: 62.8pt
                    Focus:Score: 101pt
                    Images:Score: 1.00pt
                    Leaves:Score: 213pt
                    Multiply:Score: 369pt
                    Paths:Score: 832pt
                    Suits:Score: 203pt


WebKit r181831:
          Animometer:Score:Geometric: 373pt
                    Canvas Arcs:Score: 240pt
                    Canvas Lines:Score: 916pt
                    Design:Score: 76.8pt
                    Focus:Score: 46.4pt
                    Images:Score: 220pt
                    Leaves:Score: 8490pt
                    Multiply:Score: 579pt
                    Paths:Score: 853pt
                    Suits:Score: 195pt


On r181832 <https://trac.webkit.org/changeset/181832> which is the revision that removes the prefix for CSS Transforms, all animations are shown correctly.

On r181831 the result is clearly miss-leading. The third animation and the animation with the letters "design" are not correctly shown on the screen.
But the result given to the user is much better.

I think MotionMark/Animometer needs to either:

  * Gain compatibility with old browsers still using prefixed CSS transforms.
  * Be more robust and detect that the animations are actually not happening as expected, therefore it shouldn't increment the performance counter as it does.
Comment 1 Michael Catanzaro 2016-12-20 06:44:25 PST
Question: that ENABLE_3D_TRANSFORMS is enabled on our bots in FeatureList.pm, but disabled and unsupported for end users of all CMake ports in WebKitFeatures.cmake. Is there a reason for this discrepancy? It does not seem like it should be an experimental feature anymore if it's been unprefixed for nearly years?
Comment 2 Simon Fraser (smfr) 2016-12-20 13:09:40 PST
(In reply to comment #1)
> Question: that ENABLE_3D_TRANSFORMS is enabled on our bots in
> FeatureList.pm, but disabled and unsupported for end users of all CMake
> ports in WebKitFeatures.cmake. Is there a reason for this discrepancy? It
> does not seem like it should be an experimental feature anymore if it's been
> unprefixed for nearly years?

A port that isn't able to render 3D transforms might ship with ENABLE_3D_TRANSFORMS turned off.
Comment 3 Michael Catanzaro 2016-12-20 17:30:23 PST
So it sounds like maybe we should enable this feature (Carlos)...? In a separate bug?
Comment 4 Carlos Alberto Lopez Perez 2016-12-20 18:42:47 PST
(In reply to comment #3)
> So it sounds like maybe we should enable this feature (Carlos)...? In a
> separate bug?

Are you sure its not already enabled by default?

I think its enabled on a per-port basis:

$ git grep ENABLE_3D_TRANSFORMS Source/cmake/Options*
Source/cmake/OptionsEfl.cmake:WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PUBLIC ON)
Source/cmake/OptionsGTK.cmake:WEBKIT_OPTION_DEPEND(ENABLE_3D_TRANSFORMS ENABLE_OPENGL)
Source/cmake/OptionsGTK.cmake:WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PRIVATE ON)
Source/cmake/OptionsMac.cmake:WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PRIVATE ON)
Source/cmake/OptionsWin.cmake:WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PUBLIC ON)
Comment 5 Michael Catanzaro 2016-12-20 18:52:08 PST
You're right, I forgot to check.