perf: warm the entity quadtree alongside the handle index

Warming only the interaction handle index left the first hover at
385 ms, down from 992 but not gone:

    hover-detail  query=0.1 handles=384.6 ... candidates=186

The handles stage builds two indexes, not one. `interaction_candidate_handles`
also reaches for `entity_index()` — the entity quadtree, keyed on
geometry_epoch and just as cold at that point. Warm both.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
PanosandClaude Opus 5 committed 2026-09-05 09:10:49 +03:00
1 parent 909b7f3379
commit b9c2524748
1 file changed
+5
+5
View File
@@ -7912,6 +7912,11 @@ impl Scene {
/// already waiting. A second on an open that is already seconds long reads
/// very differently from a second-long freeze on a mouse move.
pub(crate) fn warm_interaction_caches(&self) {
// Both indexes on the hover path, not just one. The handle index alone
// left `hover-detail ... handles=384.6` on the first hover: the same
// stage also builds the entity quadtree, which is keyed on
// `geometry_epoch` and equally cold at that point.
let _ = self.entity_index();
let _ = self.interaction_handle_index();
}