Skip to content

UIKit: preserve queued GPU redraws while waiting - #4620

Open
brianconnoly wants to merge 4 commits into
rust-windowing:masterfrom
brianconnoly:vss/uikit-gpu-redraw-queue-master
Open

UIKit: preserve queued GPU redraws while waiting#4620
brianconnoly wants to merge 4 commits into
rust-windowing:masterfrom
brianconnoly:vss/uikit-gpu-redraw-queue-master

Conversation

@brianconnoly

@brianconnoly brianconnoly commented Jul 8, 2026

Copy link
Copy Markdown

Summary

  • allow GL/Metal-backed request_redraw calls to queue redraws while the iOS event loop is waiting, polling, or already processing redraws
  • wake the CFRunLoop timer when queued GPU redraw work arrives
  • re-arm the requested WaitUntil deadline after the GPU redraw queue drains, instead of leaving the repeating 0.1 microsecond timer hot
  • keep immediate wakeups while GPU redraw work remains queued

The transition is expressed through a small waker-action helper. The regression test drained_gpu_queue_rearms_wait_until_deadline covers both the drained and still-queued paths.

Validation

  • git diff --check
  • cargo +nightly fmt --check -p winit-uikit
  • cargo test -p winit-uikit --target aarch64-apple-ios --no-run (compile-level validation; the target binary cannot execute on the host)
  • full upstream CI matrix passes for commit 488722b0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant