[client] cursor: pace composited redraws

Coalesce pointer updates to the nominal output cadence instead of
waking the renderer for every transport packet. Keep request and
presented generations separate so updates racing a render receive a
trailing swap.

Let JIT consume cursor changes on display callbacks to preserve VRR
cadence, and use a deadline worker for non-JIT rendering. Give normal
source frames a short grace period so an on-rate feed absorbs the
cursor update instead of producing an extra swap.

Repaint visibility and cursor-content changes even when movement
redraws are disabled, including the transition that hides the cursor.
This commit is contained in:
Geoffrey McRae
2026-08-06 18:52:46 +10:00
parent 604b3082f3
commit 5cc7f06185
3 changed files with 208 additions and 19 deletions

View File

@@ -398,7 +398,7 @@ static struct Option options[] =
{
.module = "input",
.name = "mouseRedraw",
.description = "Mouse movements trigger redraws (ignores FPS minimum)",
.description = "Mouse movements trigger display-rate redraws",
.type = OPTION_TYPE_BOOL,
.value.x_bool = true,
},