https://old.reddit.com/r/nier/ does not run smoothly at 120fps
Categories
(Core :: Graphics: WebRender, defect, P5)
Tracking
()
People
(Reporter: pnm79623, Assigned: nical, NeedInfo)
References
(Depends on 1 open bug, )
Details
(Keywords: nightly-community)
Attachments
(14 files)
4.72 MB,
video/webm
|
Details | |
17.16 KB,
text/plain
|
Details | |
9.99 MB,
video/webm
|
Details | |
9.01 MB,
video/webm
|
Details | |
9.95 MB,
video/webm
|
Details | |
4.49 MB,
video/webm
|
Details | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Comment 2•7 years ago
|
||
Comment 4•7 years ago
|
||
Comment 6•7 years ago
|
||
Comment 9•7 years ago
|
||
Reporter | ||
Comment 10•7 years ago
|
||
Updated•7 years ago
|
Comment 11•7 years ago
|
||
Reporter | ||
Comment 12•7 years ago
|
||
Comment 13•7 years ago
|
||
Updated•7 years ago
|
Reporter | ||
Comment 14•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 15•7 years ago
|
||
Comment 16•7 years ago
|
||
Updated•7 years ago
|
Comment 17•7 years ago
|
||
Reporter | ||
Comment 18•7 years ago
|
||
Comment 19•6 years ago
|
||
How does this look for you now?
Assignee | ||
Comment 20•6 years ago
•
|
||
This page performs poorly on my x1 carbon laptop (linux + intel). From a quick look in perf there seem to be some low hanging fruits to pick. Here' what stands out at a glance:
- The average number of retired instruction per cycle is low (usually means unhappy caches). On this CPU I usually get about 2.0 ins/cycle for instruction-bound workloads and here I'm getting 0.6.
- There's a lot of page faults happening in RenderTaskTree::add. Looks like we can't recycle the allocation because the tree is sent to the render thread but we can record the previous allocated size and pre-allocate the vectors each frame (*).
- A lot of instruction cache misses on the render thread in driver code and in
draw_instanced_batch
. Dzmitry's suggestion to remove redundant gl calls might help here (Edit: I got mixed up, the suggestion was in another bug). - PrimitiveStore::update_visibility is is high in number of samples and also in the number of data cache misses. This one might not be a low hanging fruit but I'm pointing it out because this function consistently shows up at the top of profiles for me lately.
(*): Actually, even though we send the RenderTaskTree to the renderer it looks like we only use it there for debugging purposes ... aaand no we do use it for non-debug things as well.
Assignee | ||
Comment 21•6 years ago
|
||
Assignee | ||
Comment 22•6 years ago
•
|
||
On a machine with a more powerful CPU and a 4k screen the biggest problem is GPU times with lots of time spent in B_Blend.
(Edit: I had picture caching disabled, my bad, it does wonders on this page).
On the CPU side it clearly doesn't help that the banner at the top has a css animation on background-position which is causing us to continuously go through DL building, scene building, frame building and rendering even when it is off-screen.
Optimizations will help but the best way to really cut CPU times for this type of pages is to add support for more animated properties.
Comment 23•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Comment 24•6 years ago
|
||
bugherder |
Assignee | ||
Comment 25•6 years ago
|
||
Comment 26•6 years ago
|
||
Assignee | ||
Comment 27•6 years ago
|
||
Assignee | ||
Comment 28•6 years ago
|
||
Assignee | ||
Comment 29•6 years ago
|
||
Assignee | ||
Comment 30•6 years ago
|
||
Assignee | ||
Comment 31•6 years ago
|
||
Assignee | ||
Comment 32•6 years ago
|
||
Assignee | ||
Comment 33•6 years ago
|
||
Here is a series of small changes in a general attempt to reduce the __memmove_avx_unaligned_erms
samples that were towards the top of the profile and consolidated into a single group. Perf wouldn't give me the stacks for these samples unfortunately, so I resorted to gdb breakpoints to figuring where a lot of these memmoves come from.
Removing some of the memmoves might not yield real perf wins if the time was mostly spent waiting for cold misses (the read will still happen), but if anything these patches reduce the amount of perf samples that fall into the __memmove_avx_unaligned_erms
bucket and the potential cache misses move into hopefully more helpful symbols. Also the changes are generally trivial.
One of the most notable source of frequent small __memmove_avx_unaligned_erms
on the render backend comes from moving TransformUpdateState
in ClipScrollTree::update_tree
. It isn't as straighforward to reduce as the first wave of changes, though.
Another thing that came up while profiling this page is the cost of moving/hashing/cloning FontInstace
, but that required more involved surgery so I filed bug 1529272 for that.
Comment 34•6 years ago
|
||
bugherder |
Comment 35•6 years ago
|
||
Comment 36•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/b512bb508796
https://hg.mozilla.org/mozilla-central/rev/932ab91a896e
https://hg.mozilla.org/mozilla-central/rev/d0c93c9acd66
https://hg.mozilla.org/mozilla-central/rev/659354cec17d
https://hg.mozilla.org/mozilla-central/rev/9af23e1d86c8
https://hg.mozilla.org/mozilla-central/rev/7102801e2ca8
Comment 37•6 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:jbonisteel, maybe it's time to close this bug?
Comment 39•5 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:jbonisteel, maybe it's time to close this bug?
Comment 40•5 years ago
|
||
Does this still need to be left open, Nical?
Assignee | ||
Comment 41•5 years ago
|
||
Performance isn't great but not aweful on this page these days. I don't have a way to test at 120fps, though. We could leave it open and revisite when progress is made on the two dependencies.
Comment 42•5 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:jimm, maybe it's time to close this bug?
![]() |
||
Updated•5 years ago
|
Comment 43•4 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:jimm, maybe it's time to close this bug?
![]() |
||
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Description
•