Closed Bug 1467619 Opened 6 years ago Closed 6 years ago

Fix our motionmark_animometer Design score

Categories

(Core :: Graphics: Layers, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: alexical, Assigned: alexical)

References

(Regressed 1 open bug)

Details

Attachments

(1 file)

The motionmark_animometer Design test creates a bunch of overlapping text rectangles which move around and change color in a requestAnimationFrame(...) cycle. Our performance on this test is really bad because we create a bunch of layers for no benefit, since they have to be repainted every frame anyway. We should fix that.

Here is a talos run with the behavior changed:
https://treeherder.mozilla.org/perf.html#/comparesubtest?originalProject=mozilla-central&newProject=try&newRevision=6efd3d75ffbbde28d5e6cf641d91ec5352e5ea80&originalSignature=cfbf3a9ac76b5de64bb3a493290639205ff28244&newSignature=cfbf3a9ac76b5de64bb3a493290639205ff28244&framework=1&selectedTimeRange=172800
Quick note: this caps out our performance on the test at 60fps. The real impact of this change is much larger. We should consider bumping the complexity that we run the test at from 17 to 200 at some point to compensate and ensure we're tracking regressions.
Comment on attachment 8984320 [details]
Bug 1467619 - Track and adjust layerization on repaint triggers

https://reviewboard.mozilla.org/r/250136/#review256442

Looks good! We should definitely increase the test complexity, both to show off this win, and to prevent regressions.
Attachment #8984320 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8984320 [details]
Bug 1467619 - Track and adjust layerization on repaint triggers

https://reviewboard.mozilla.org/r/250136/#review256442

Okeydoke. I'm going to put it into a follow-up bug, so that we can get clean numbers after landing this for at least a few days, if that sounds all right.
Pushed by dothayer@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7eb872d2f548
Track and adjust layerization on repaint triggers r=mattwoodrow
https://hg.mozilla.org/mozilla-central/rev/7eb872d2f548
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Yay, this fix has really reduced GPU power as well as improving Motionmark scores. For your test case....
 
                            FPS     GPU power, Watts   Total machine power @ 50% brightness, Watts
Firefox                      9          ~16 W                    ~35 W
Nightly 2018-08-08          58           ~4 W                    ~20 W


It's also helped with the Reddit r/firefox load times & power, bug 1459875. It's not a complete fix but it helps. I think the reduction in iGPU power allows the CPU to un-throttle a bit, it now gets 7 W up from 5 W (though it would like to go up to around 12 W so it's probably still only at half speed).

                           time to load,s      GPU power, Watts    CPU power, Watts
Firefox                       8 s               ~18 W                    ~5 W
Nightly 2018-08-08            7 s               ~14 W                    ~7 W

MacBookPro11,1 @1280x800

It's also fixed my CSS animation test case https://codepen.io/davidhc/pen/nLpJk from bug 1422090 comment 37. When zoomed up to 150% this was killing my GPU, no longer.

                                GPU power, Watts   
Firefox                               ~15 W        
Nightly 2018-08-08                     ~4 W    



(Sorry to drone on about GPU power so much)
Depends on: 1468150
Depends on: 1468401
Regressions: 1614470
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: