https://mozanime.github.io/taketori/ is very slow
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox66 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
()
Details
Attachments
(1 file, 3 obsolete files)
(deleted),
text/x-phabricator-request
|
Details |
Updated•6 years ago
|
Comment 2•6 years ago
|
||
Assignee | ||
Comment 3•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 4•6 years ago
|
||
Assignee | ||
Comment 5•6 years ago
|
||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
It seems not easy to address the partial pre-rendering of content with an animated transform. Instead, it seems simpler just relax, the size check in nsDisplayTransform::ShouldPrerenderTransformedContent() when the painting is for WebRender because of the following.
- When webrender is enabled, gecko already allocates whole svg image at nsDisplayImage::CreateWebRenderCommands() and the image does not needs additional TextureClient allocation for async animation.
- When webrender is enabled, content process normally does not allocate TextureClient except canvas and video.
- When disiplay list does not support Webrender, part of the display list is rendered as blob image. and does not allocate TextureClient in content process.
Assignee | ||
Comment 11•6 years ago
|
||
Assignee | ||
Comment 12•6 years ago
|
||
With attachment 9035842 [details] [diff] [review], fps was improved from 3fps to 40fps.
Assignee | ||
Comment 13•6 years ago
|
||
Got profile with attachment 9035842 [details] [diff] [review]. Cpu usage in content process was decreased.
Assignee | ||
Comment 14•6 years ago
|
||
Assignee | ||
Comment 15•6 years ago
|
||
attachment 9035842 [details] [diff] [review] had a problem. absoluteLimit was not big enough to trigger async animation on my laptop(P50 Win10).
Assignee | ||
Comment 16•6 years ago
|
||
Assignee | ||
Comment 17•6 years ago
|
||
attachment 9036507 [details] [diff] [review] relaxed more. With it, async animation happened more on my laptop(P50 Win10) and fps was around 46fps.
Assignee | ||
Comment 18•6 years ago
|
||
attachment 9036507 [details] [diff] [review] caused dom/animation/test/mozilla/test_restyles.html test failure.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=737188207907659380073bcbe087022f9291451c
Assignee | ||
Comment 19•6 years ago
|
||
:hiro, do you know why attachment 9036507 [details] [diff] [review] could cause test_restyles.html test failure?
Comment 20•6 years ago
|
||
It's hard to tell without the information which test actually fails. My best guess is that the last one [1].
Now the transform animation on a big element in the test runs on the compositor due to the relaxed restrictions?
Assignee | ||
Comment 21•6 years ago
|
||
Ah, the test faild at "ok(!SpecialPowers.wrap(animation).isRunningOnCompositor)" in flush_layout_for_transform_animations(), because attachment 9036507 [details] [diff] [review] permits async animation of large frames.
Assignee | ||
Comment 22•6 years ago
|
||
Assignee | ||
Comment 23•6 years ago
|
||
Assignee | ||
Comment 24•6 years ago
|
||
Comment on attachment 9036804 [details] [diff] [review]
patch - Relax aysnc animation restriction with WebRender
:hiro, can you feedback to the patch?
Comment 25•6 years ago
|
||
Comment on attachment 9036804 [details] [diff] [review]
patch - Relax aysnc animation restriction with WebRender
I am afraid that I am not familiar with WebRender to understand the reasoning in comment 10. Could you please get feedbacks from WebRender guys?
One thing from animation perspective I am still wondering why some test cases in dom/animation/test/chrome/test_animation_performance_warning.html still pass with this patch. There are also test cases of transform animations on large elements.
Assignee | ||
Comment 26•6 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #25)
One thing from animation perspective I am still wondering why some test cases in dom/animation/test/chrome/test_animation_performance_warning.html still pass with this patch. There are also test cases of transform animations on large elements.
I confirmed that mochitest chrome did not run with WebRender. Just enabling it caused several test failures including dom/canvas/test/chrome/test_drawWindow_widget_layers.html like the following.
Assignee | ||
Comment 27•6 years ago
|
||
Actually the following mochitests are not enabled on linux-qr-tests yet.
- mochitest-browser-chrome
- mochitest-chrome
- mochitest-clipboard
- mochitest-devtools-chrome
Assignee | ||
Comment 28•6 years ago
|
||
Created Bug 1520705 for enabling mochitest-chrome on WebRender.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 29•6 years ago
|
||
Updated•6 years ago
|
Comment 30•6 years ago
|
||
Comment 31•6 years ago
|
||
bugherder |
Comment 32•4 years ago
|
||
For records, this change was backed out in bug 1587713, but the site in question should work fine since bug 1656418. It's much smoother with enabling layout.animation.prerender.partial at least on my Window 10 laptop on a local debug build.
Comment 33•4 years ago
|
||
The performance seems a lot better now. I still see graphical glitches and content that appears to be rendered at a resolution that is too low, but those should probably be treated as separate bugs.
Description
•