xpra icon
Bug tracker and wiki

Opened 6 years ago

Last modified 2 weeks ago

#137 assigned enhancement

games rely on precise mouse movements and their timing

Reported by: Antoine Martin Owned by: ahuillet
Priority: major Milestone: future
Component: client Version: trunk
Keywords: Cc: dennis.schridde@…

Description (last modified by Antoine Martin)

effectively, they do their own mouse acceleration, and since we send the mouse movements packets when we feel like it, the games see jerky mouse movements and produce jerky mouse movements in the game...

queue_mouse_position_packet only keeps one mouse "positional" packet at a time, so we only send the last one rather than all the mouse movements.
There will be a high cost when sending all mouse movements, so this will need to be an option.

First thing to do is to try to replace queue_mouse_position_packet with queue_priority_packet client.py's send_mouse_position

Change History (8)

comment:1 Changed 6 years ago by Antoine Martin

Description: modified (diff)
Status: newaccepted

comment:2 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to ahuillet
Status: acceptedassigned

comment:3 Changed 5 years ago by Antoine Martin

Milestone: 0.4future

comment:4 Changed 5 years ago by Antoine Martin

Some potentially relevant pointers and thoughts:

  • maybe using a different mouse type, a tablet or something that uses absolute positioning would prevent the games/libraries from doing pointer acceleration on our events - which are always lagging by a variable amount of time
  • maybe using a different API than Xtest? see below.
  • a number of api calls below support a delay parameter, we could set our internal target delay to something close to the highest client latency observed (or 90 percentile?) and then adjust the api delay on our simulated events so that all the events have the same gap between them as on the client. (and if we suddenly get a higher client latency.. increase the target delay to accommodate and go back down slowly?) - should work?

comment:5 Changed 5 years ago by Antoine Martin

Version: 0.3.xtrunk

comment:6 Changed 3 years ago by Antoine Martin

See also #770 and in particular r8482 which added XTestFakeMotionEvent and XTestFakeRelativeMotionEvent.

comment:7 Changed 23 months ago by urzds

Cc: dennis.schridde@… added

comment:8 Changed 2 weeks ago by Antoine Martin

See also #173

Note: See TracTickets for help on using tickets.