Files
benilla-octo/crates
gromandClaude Opus 5 31b7d4f228 A unit that walks is still the same unit, so its plate stays up
Mousing over a patrolling NPC cost grom about sixty frames a second. The hover
driver rebuilds a unit plate when its subject changes, and `lines_view` — the
key that decides that — carried where the unit stands, twice: `UnitState::
position`, which is the interpolated `Transform`, and `UnitState::fields`,
whose raw `posX`/`posY` columns are the same thing again. `sample_splines`
rewrites that transform every frame a creature is on a move path, so the key
changed every frame and the plate was torn down and built again at the frame
rate.

A rebuild is a deliberate hide/show pair plus `clear_content` and a full line
walk — `tooltip_unit.rs` says so in as many words, "a hide/show pair per new
subject, not per frame" — so every tooltip hook in the interface ran again:
pfUI's skin, pfQuest's annotation, both `OnShow` GUID readers.

The bench added here prices it on the player's own 94-addon interface at
6.63 ms/frame under forty churning nameplates and 6.78 ms/frame with none up,
against whole-frame baselines of 1.84 ms and 0.85 ms. The guess was that the
two shapes would differ, because a pull re-derives the layout graph anyway;
they do not, so the cost is the plate's own line walk and the hooks on it, flat.
The live asset probes are installed and cost 0.001 ms/frame, and the plate
re-measures no text, so neither the patch chain nor the font engine is in it —
the rest of grom's 90-to-31 fps is app-side, outside this harness.

His video says the same thing from the other end: the *same* Ironforge Guard
read 89.7 fps standing at a waypoint and 31.3 walking, Katrina Shimmerstar and
Hemming Silverbeard never moved and never cost anything, and Myra Tyrngaarde
walked across frame with the cursor tracking her, 50.7 to 39.4 to 35.7. A mob
you are fighting stands in melee, which is why those never did it either.

`lines_view` now also drops the whereabouts, the raw columns and the four power
slots, leaving only what can draw a line. A late name or creature answer still
rebuilds the plate, which is the whole reason the key is a snapshot and not the
GUID; both halves have a test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
2026-10-28 17:38:03 -06:00
..