Root cause analysis: - 0% baseline: calloop 60Hz polling has zero measurable CPU cost - 3% is entirely from ProjectBox::render() rebuilding ~30 header divs × 2 boxes × 2/sec = 120 div constructions/sec - AgentPane + TerminalView cached (into_cached_flex) = 0% contribution - mark_view_dirty() walks ancestors unconditionally in GPUI 0.2.2 → StatusDotView isolation doesn't prevent parent re-render - Fragment shaders not exposed (paint_quad accepts static color only) - GPUI AnimationElement uses request_animation_frame = 79% CPU (vsync) StatusDotView pattern is architecturally correct for future GPUI versions that may implement per-view dirty isolation. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.lock | ||
| Cargo.toml | ||