Decide whether the perf HUD readout is actually trustworthy #60

Open
opened 2026-09-05 15:12:03 +00:00 by ImBenji · 0 comments
Owner

SceneStatsFooterHud (lib/editor_shared/hud/scene_stats_hud.dart) shows an fps figure smoothed as 0.3 * instant + 0.7 * previous, driven off frame callbacks.

Users photograph this number and report it, and the non-macOS figures that come back are bad on scenes that should be trivial. Two possibilities and nobody has established which:

  1. The number is real, in which case non-macOS performance is worse than any profiling has shown and it is the top user-reported issue in the project.
  2. The readout is misleading - measuring the wrong interval, or the smoothing hiding the shape of the problem - in which case it is actively generating false reports and misinforming everyone who screenshots it.

Both are worth resolving and the resolution is cheap relative to acting on either. STRATEGY.md section 11 sizes it at 5-10 hrs and puts it in the current quarter.

Worth checking against the Impeller stroke regression already known about: Flutter 3.47-beta Impeller renders strokes about 2.5x too thick under canvas zoom, and the same code renders differently depending on whether it was launched from the terminal (stable 3.44.8) or Android Studio (an older stable). If reporters are on mixed toolchains their numbers are not comparable to each other either.

Related: the existing "Improve performance." issue, which this would give something concrete to act on.

Opened during the roadmap audit on 2026-09-05.

`SceneStatsFooterHud` (`lib/editor_shared/hud/scene_stats_hud.dart`) shows an fps figure smoothed as `0.3 * instant + 0.7 * previous`, driven off frame callbacks. Users photograph this number and report it, and the non-macOS figures that come back are bad on scenes that should be trivial. Two possibilities and nobody has established which: 1. The number is real, in which case non-macOS performance is worse than any profiling has shown and it is the top user-reported issue in the project. 2. The readout is misleading - measuring the wrong interval, or the smoothing hiding the shape of the problem - in which case it is actively generating false reports and misinforming everyone who screenshots it. Both are worth resolving and the resolution is cheap relative to acting on either. STRATEGY.md section 11 sizes it at 5-10 hrs and puts it in the current quarter. Worth checking against the Impeller stroke regression already known about: Flutter 3.47-beta Impeller renders strokes about 2.5x too thick under canvas zoom, and the same code renders differently depending on whether it was launched from the terminal (stable 3.44.8) or Android Studio (an older stable). If reporters are on mixed toolchains their numbers are not comparable to each other either. Related: the existing "Improve performance." issue, which this would give something concrete to act on. Opened during the roadmap audit on 2026-09-05.
ImBenji added this to the Arcs & Angles project 2026-09-05 15:12:03 +00:00
ImBenji added the area:performance label 2026-09-05 15:15:15 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: IMBENJI.NET/Metro-Map-Maker#60