Fix broken active blob items heuristics
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox158 | --- | fixed |
People
(Reporter: nical, Assigned: nical)
References
Details
(Keywords: perf-alert)
Attachments
(2 external files)
Two long standing bugs meant the thresholds in the grouping code never applied: ConstructGroups computed isLast with iterator::HasNext(), which is true for every item the loop visits, so the middle-of-list "Should" threshold was never used; and AssessBounds compared the item size in app
units against a threshold documented in pixels, so anything wider than about eight device pixels counted as large.
| Assignee | ||
Comment 1•2 months ago
|
||
Count group blobs, fallback blobs, blob pixel area, items painted into
group blobs by type, and group splits by the type of the item that caused
them. The counters are reset per display list build and reported as a
"WebRender blob images" profiler marker so that the effect of making more
SVG items active can be read off a profile.
When gfx.webrender.debug.highlight-painted-layers is set, group blobs are
now tinted green (fallback blobs keep the red tint) so the two kinds can be
told apart.
| Assignee | ||
Comment 2•2 months ago
|
||
Two long standing bugs meant the thresholds in the grouping code never
applied: ConstructGroups computed isLast with iterator::HasNext(), which is
true for every item the loop visits, so the middle-of-list "Should"
threshold was never used; and AssessBounds compared the item size in app
units against a threshold documented in pixels, so anything wider than about
eight device pixels counted as large. The effective behavior was that every
item that could be active was.
isLast is now computed from the next iterator and AssessBounds works in
device pixels.
Comment 3•2 months ago
|
||
How were the bugs found?
Comment 4•2 months ago
|
||
I know I found the app units vs pixels bug a long time ago in some bug while nical was on pto, I guess we forgot about it while waiting for nical to come back, back then.
| Assignee | ||
Comment 5•2 months ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #3)
How were the bugs found?
Claude code found them while investigating converting some blob items to WR display items.
Comment 7•2 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/5709a300bdb7
https://hg.mozilla.org/mozilla-central/rev/11de34f03090
https://hg.mozilla.org/mozilla-central/rev/7af2b286ab50
Comment 8•1 month ago
|
||
Perfherder has detected a browsertime performance change from push 7af2b286ab5040815464ca9c5a7cf11abc226d6a.
No action is required from the author; this comment is provided for informational purposes only.
| Improvement | Test | Platform | Options | Absolute values [old vs new] | Performance Profiles |
|---|---|---|---|---|---|
| 3% | speedometer3 Charts-observable-plot/total (doc) | windows11-64-24h2-hw-ref-shippable | fission webrender | 56.92 ms -> 54.96 ms | Before/After |
| 3% | speedometer3 Charts-observable-plot/total (doc) | windows11-64-24h2-hw-ref-shippable | fission webrender | 56.35 ms -> 54.85 ms | Before/After |
Need Help or Information?
If you have any questions, please reach out to fbilt@mozilla.com. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
Updated•1 month ago
|
Description
•