fix(next): follow up window motion pacing and scale changes
Summary
Fix forward the merged window motion work: restore synchronous content display after the same-harness A/B showed no pacing win, require the shared window-resize minimum of 20 intermediate display frames, and relayout titlebar chrome when a window moves between displays with a new backing scale.
This follows #35063 and #35064 and closes their confirmed follow-ups in #35097. The capture follow-up remains tracked in #35098.
Performance
| metric | before | after | delta | harness or run link |
|---|---|---|---|---|
| 1x2 window-zoom frame p95 (ms) | 16.67 | 16.67 | 0 | existing BEFORE f3dd8dba08e04d00a0ad640a / AFTER 75f549fef2070cb44e894434 |
| 1x2 window-zoom max frame (ms) | 33.0 | 35.55 | +2.55 | same 120 Hz virtual-display harness |
| stress window-zoom frame p95 (ms) | 28.2 | 20.99 | -7.21 | same harness |
| stress window-zoom missed frames | 12 | median 13 | unresolved | same harness |
The measured result did not establish a consistent benefit for deferred display, so this follow-up returns to the synchronized presentation path. No duplicate perf run was dispatched.
Validation
python3 -I scripts/cmux-next/tests/test_window_zoom_motion.py(17 passed)- Existing fleet app compile receipts for the parent changes:
8bdabc5b1818168834ece0f6andf669c21e7814c2fa8ea9dec5
Changelog
- Keep zoom content display synchronized with each animated frame.
- Enforce the shared 20-intermediate-frame window pacing floor.
- Re-layout pixel-aligned titlebar chrome after backing-scale changes.
agent-identity footer --repo manaflow-ai/cmux
🤖 Generated with Codex
Agent session: agent session
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Follows the merged window motion work: restores synchronous zoom content display, enforces the shared 20-intermediate-frame window pacing floor, and relayouts titlebar chrome when a window moves between displays with a new backing scale.
- Zoom operations animate with
display: trueso content is painted with each frame; the deferred variant showed no consistent pacing benefit and could leave a late content update behind the window motion. - The window-perf harness rejects zoom and unzoom runs under 20 intermediate display frames, and the motion tests now cover that floor with 22-sample traces.