Skip to content

Fix delayed macOS terminal frame presentation - #10

Open
rkzlyldrm wants to merge 1 commit into
mainfrom
task/terminal-core/macos-redraw-delivery
Open

Fix delayed macOS terminal frame presentation#10
rkzlyldrm wants to merge 1 commit into
mainfrom
task/terminal-core/macos-redraw-delivery

Conversation

@rkzlyldrm

Copy link
Copy Markdown
Contributor

Summary

  • move the renderer from WGPU 22 to WGPU 23 and Glyphon 0.7
  • use WGPU's corrected macOS Metal sublayer path so AppKit can continue delivering redraw callbacks
  • refresh the exact dependency, licence, notice, and advisory-review contracts

Why

A reported macOS failure accumulated typed input and PTY output in the terminal model but did not present the new frame until a later scroll event. WGPU 22 replaced winit's NSView root layer with CAMetalLayer; upstream identified that layer-hosting mode as preventing winit from receiving the AppKit callbacks used to emit RedrawRequested. WGPU 23 changed the surface to a Metal sublayer: gfx-rs/wgpu#6107

This keeps Hydra event-driven. It does not add a polling redraw loop or a frame watchdog.

Validation

  • cargo test --locked -p maestro-renderer -- --test-threads=1 (903 passed)
  • cargo clippy --locked -p maestro-renderer --all-targets -- -D warnings
  • cargo check --locked --workspace --all-targets
  • python3 scripts/verify-third-party-licenses.py (57 proofs)
  • scripts/check-public-boundary.sh
  • ./scripts/build-local.sh --release
  • cargo fmt --all -- --check
  • git diff --check

Physical qualification remains required on the reporting Mac with a signed successor build: first typed input and first PTY output must appear without any scroll or pointer event.

Signed-off-by: rkzlyldrm <rkzlyldrm@gmail.com>
@rkzlyldrm
rkzlyldrm requested a review from a team as a code owner August 18, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant