Crazy pointer behaviour with polynomial acceleration profile and acceleration <1
Submitted by Cameron
Assigned to Xorg Project Team
== Description == If using the polynomial acceleration profile with pointer acceleration below 1, the mouse movement behaves unexpectedly crazy, frequently jumping to the top left of the screen.
== Steps to reproduce ==
- xinput set-prop
<device>"Device Accel Profile" 2 # set acceleration profile to polynomial
- xset m 10 20 # or anything else where the numerator is less than the denominator
== Result == The pointer will often jump to the top left of the screen and otherwise behave unpredictably.
== Possible cause == Looking at the code, I see that the polynomial acceleration profile is implemented like so, from dix/ptrveloc.c:
pow(velocity, (acc - 1.0) * 0.5)
I interpret this to mean that if acc is less than one, the exponent becomes negative, which causes the result of pow to approach infinity as velocity approaches zero, which could cause the odd behaviour.