Closed Bug 1667670 Opened 5 years ago Closed 4 years ago

SVG's on https://www.jasondavies.com/factorisation-diagrams/ takes some time to update if scrolled fast (>100ms display list build times causing checkerboarding)

Categories

(Core :: Web Painting, defect, P3)

defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox-esr78 --- unaffected
firefox81 --- unaffected
firefox82 --- wontfix
firefox83 --- wontfix
firefox84 --- wontfix
firefox85 --- fix-optional

People

(Reporter: mayankleoboy1, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: perf, regression)

Attachments

(1 file)

Regressed by: 1654836
Summary: https://www.jasondavies.com/factorisation-diagrams/ takes some time to update if scrolled fast → SVG's on https://www.jasondavies.com/factorisation-diagrams/ takes some time to update if scrolled fast
Has Regression Range: --- → yes
Flags: needinfo?(kats)
See Also: → 1667673

Set release status flags based on info from the regressing bug 1654836

:jimm can you please set the priority/severity.

Flags: needinfo?(jmathies)

I do see some checkerboarding on that site, and yes the patch in question probably did shrink the displayport (depending on your screen size) but I'm not sure I'd consider this a bad regression. It seems no worse than other transient checkerboarding issues. However, just for posterity, can you repro the problem (on Nightly), then go to about:checkerboard and select the checkerboard event and copy the contents of the "raw log" section at the bottom into an attachment on this bug?

Component: Graphics: WebRender → Panning and Zooming
Flags: needinfo?(mayankleoboy1)
Flags: needinfo?(kats)
Flags: needinfo?(jmathies)
Severity: -- → S3
Priority: -- → P3

RENDERTRACE 462.651 rect red 0 1567.7 1352 676 // viewport
RENDERTRACE 462.719 rect yellow -84.5 529.733 1521 1521 // requested displayport velocity (0,-13.3162)
RENDERTRACE 479.276 rect red 0 1396.87 1352 676 // viewport
RENDERTRACE 479.33 rect yellow -84.5 314.433 1521 1521 // requested displayport velocity (0,-12.5075)
RENDERTRACE 495.92 rect red 0 1175.55 1352 676 // viewport
RENDERTRACE 495.985 rect yellow -84.5 115.85 1521 1521 // requested displayport velocity (0,-11.295)
RENDERTRACE 512.905 rect red 0 952.233 1352 676 // viewport
RENDERTRACE 512.971 rect yellow -84.5 -63.0833 1521 1521 // requested displayport velocity (0,-9.7191)
RENDERTRACE 529.36 rect red 0 736.933 1352 676 // viewport
RENDERTRACE 529.427 rect yellow -84.5 -208.3 1521 1521 // requested displayport velocity (0,-7.88015)
-- checkerboarding starts below --
RENDERTRACE 546.359 rect red 0 538.35 1352 676 // viewport
RENDERTRACE 546.431 rect yellow -84.5 -323.8 1521 1521 // requested displayport velocity (0,-5.63305)
RENDERTRACE 562.637 rect red 0 359.417 1352 676 // viewport
RENDERTRACE 562.745 rect yellow -84.5 -395.567 1521 1521 // requested displayport velocity (0,-3.09995)
RENDERTRACE 579.293 rect red 0 214.2 1352 676 // viewport
RENDERTRACE 579.394 rect yellow -84.5 -422.5 1521 1521 // requested displayport velocity (0,-0.04785)
RENDERTRACE 592.402 rect brown 0 0 1352 2409 // page
RENDERTRACE 592.428 rect lightgreen 0 512 1352 1792 // painted displayport (this layertree updated)
RENDERTRACE 592.536 rect red 0 98.7 1352 676 // viewport
RENDERTRACE 595.925 rect red 0 98.7 1352 676 // viewport
RENDERTRACE 596.022 rect yellow -84.5 -422.5 1521 1521 // requested displayport velocity (0,0)
RENDERTRACE 612.602 rect red 0 26.9333 1352 676 // viewport
RENDERTRACE 701.602 rect brown 0 0 1352 2409 // page
RENDERTRACE 701.625 rect lightgreen 0 0 1352 1792 // painted displayport (this layertree updated)
Checkerboarded for 5 frames (156.243 ms), 654368 peak, 6059 severity.

Flags: needinfo?(mayankleoboy1)

And another, with same steps (in case the first one is wrong)

RENDERTRACE 383.923 rect red 0 1511.58 1352 676 // viewport
RENDERTRACE 385.807 rect yellow -84.5 467.1 1521 1521 // requested displayport velocity (0,-13.3507)
RENDERTRACE 400.119 rect red 0 1335.77 1352 676 // viewport
RENDERTRACE 400.19 rect yellow -84.5 256.417 1521 1521 // requested displayport velocity (0,-12.5695)
RENDERTRACE 416.768 rect red 0 1120.62 1352 676 // viewport
RENDERTRACE 416.838 rect yellow -84.5 57.5 1521 1521 // requested displayport velocity (0,-11.2478)
RENDERTRACE 433.398 rect red 0 889.6 1352 676 // viewport
RENDERTRACE 433.469 rect yellow -84.5 -115.55 1521 1521 // requested displayport velocity (0,-9.49732)
RENDERTRACE 450.24 rect red 0 678.917 1352 676 // viewport
RENDERTRACE 450.309 rect yellow -84.5 -257.75 1521 1521 // requested displayport velocity (0,-7.32237)
-- checkerboarding starts below --
RENDERTRACE 466.923 rect red 0 480 1352 676 // viewport
RENDERTRACE 466.985 rect yellow -84.5 -359.2 1521 1521 // requested displayport velocity (0,-4.76628)
RENDERTRACE 483.453 rect red 0 306.95 1352 676 // viewport
RENDERTRACE 483.559 rect yellow -84.5 -414.25 1521 1521 // requested displayport velocity (0,-1.80562)
RENDERTRACE 500.124 rect red 0 164.75 1352 676 // viewport
RENDERTRACE 500.206 rect yellow -84.5 -422.5 1521 1521 // requested displayport velocity (0,0)
RENDERTRACE 516.819 rect red 0 63.3 1352 676 // viewport
RENDERTRACE 533.416 rect red 0 8.25 1352 676 // viewport
RENDERTRACE 554.829 rect brown 0 0 1352 2409 // page
RENDERTRACE 554.872 rect lightgreen 0 256 1352 1792 // painted displayport (this layertree updated)
RENDERTRACE 555.367 rect red 0 0 1352 676 // viewport
RENDERTRACE 566.782 rect red 0 0 1352 676 // viewport
RENDERTRACE 666.777 rect brown 0 0 1352 2409 // page
RENDERTRACE 666.801 rect lightgreen 0 0 1352 1792 // painted displayport (this layertree updated)
Checkerboarded for 7 frames (200.695 ms), 820664 peak, 7599 severity.

Flags: needinfo?(kats)

Thanks. Both of these looks kind of reasonable from an APZ point of view. Previously the displayport would have been slightly larger, probably big enough to cover the entire page. Now it's not, and so it needs to move up and down as you're scrolling. And we can see that doing the paint takes around ~112ms (the difference in timestamps in the two "painted displayport" lines in comment 6). That also matches the display list build times in your profile in comment 0. 112ms is pretty long, trying to speed that up would help.

The profile surprisingly doesn't show a lot of time in blob rasterization so maybe there's something we can do to speed up the display list building. Beyond that I don't know if there's much we can do here. Increasing the displayport size back will help on this specific page but likely not help in the general case.

Component: Panning and Zooming → Web Painting
Flags: needinfo?(kats)
Summary: SVG's on https://www.jasondavies.com/factorisation-diagrams/ takes some time to update if scrolled fast → SVG's on https://www.jasondavies.com/factorisation-diagrams/ takes some time to update if scrolled fast (>100ms display list build times causing checkerboarding)
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: