Open Bug 1637586 Opened 5 years ago Updated 1 year ago

Terrible performance on https://looping-squares.superhi.com

Categories

(Core :: Graphics: WebRender, defect)

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.

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.

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.

Flags: needinfo?(tnikkel)

Where would we store the state?

Flags: needinfo?(jmuizelaar)
Blocks: 1637580

This is still quite bad - looks like it's all in blob rasterization.

Flags: needinfo?(tnikkel)
Flags: needinfo?(tnikkel)
You need to log in before you can comment on or make changes to this bug.