Skip to content

Fix slow, choppy mouse at 60Hz refresh rate#611

Merged
Xnick417x merged 3 commits into
WinNative-Emu:mainfrom
Xnick417x:60hz-M
Jul 11, 2026
Merged

Fix slow, choppy mouse at 60Hz refresh rate#611
Xnick417x merged 3 commits into
WinNative-Emu:mainfrom
Xnick417x:60hz-M

Conversation

@Xnick417x

Copy link
Copy Markdown
Collaborator

Captured pointer moves read only the last sample of each batched MotionEvent, dropping the historical samples that carry the rest of the motion at lower refresh rates. Sum history plus current sample for the relative-axis deltas and the getX/getY fallback.

Captured pointer moves read only the last sample of each batched
MotionEvent, dropping the historical samples that carry the rest of
the motion at lower refresh rates. Sum history plus current sample
for the relative-axis deltas and the getX/getY fallback.
The refresh-rate override injected a wall-clock frame limiter into the
guest with vsync disabled, which drifts against the panel vsync grid
and causes judder felt most in the mouse. Cap frames through the
vsync-aligned pacer instead and drop the guest-side limiter; an
explicit FPS-limit slider value still takes priority.
Coalesced render requests took a main-handler hop before arming the
frame callback, so vsync-phased requests like captured mouse moves
only rendered every other frame - a 30fps cursor on a 60Hz panel.
Post the callback directly on the cached main Choreographer instead.
Also clear preferredRefreshRate when a display mode id is set so the
refresh-rate vote applies consistently across devices.
@Xnick417x Xnick417x merged commit 8c2cf3c into WinNative-Emu:main Jul 11, 2026
3 checks passed
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