Terrible performance on https://looping-squares.superhi.com
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: jrmuizel, Unassigned, NeedInfo)
References
(Blocks 2 open bugs)
Details
It looks like we're layerizing a bunch but also invalidating which makes for a really bad time.
Reporter | ||
Comment 1•5 years ago
|
||
So the reason this is happening is because two.js rounds the transform matrix to 3 decimal places before setting it and we think the scale is constantly changing.
Reporter | ||
Comment 2•5 years ago
|
||
i.e. FrameLayerBuilder::ChooseScale() is returning alternating 1.0/2.0 as the squares spin. We could make it so we're more likely to round but I wonder if it's worth adding some state so that we make our decision based on the difference from the last scale instead of independently every time.
Reporter | ||
Comment 4•5 years ago
|
||
How about here: https://searchfox.org/mozilla-central/rev/9f074fab9bf905fad62e7cc32faf121195f4ba46/gfx/layers/wr/WebRenderCommandBuilder.cpp#303
Reporter | ||
Comment 5•5 years ago
|
||
FWIW, upstream fixed/improved the issue: https://github.com/jonobr1/two.js/commit/ff9ade2308da3e28b43c9d8ed1adea79646d9ca8
Comment 6•3 years ago
|
||
This is still quite bad - looks like it's all in blob rasterization.
Updated•3 years ago
|
Updated•1 year ago
|
Description
•