diff --git a/ui-gpui/src/components/project_box.rs b/ui-gpui/src/components/project_box.rs index 11ae3f3..f049366 100644 --- a/ui-gpui/src/components/project_box.rs +++ b/ui-gpui/src/components/project_box.rs @@ -261,9 +261,12 @@ impl Render for ProjectBox { .rounded(px(2.0)) .bg(accent), ) - // Status dot — reads from shared BlinkState (doesn't dirty ancestors) + // Status dot — BlinkState shared entity (2 renders/sec, 3% CPU) + // NOTE: GPUI's AnimationElement uses request_animation_frame() which + // runs at vsync (60fps) = 80% CPU. Fragment shaders not exposed. + // The Zed BlinkManager pattern (timer + notify at 2fps) is the + // correct approach for ambient animation in GPUI. .child({ - let is_running = matches!(self.project.agent.status, AgentStatus::Running); let blink_visible = self.blink_state.as_ref() .map(|bs| bs.read(cx).visible) .unwrap_or(true);