chrippa/ds4drv

Device report frequency fluctuation affects analog stick mouse

Closed this issue · 2 comments

Ape commented

Relative analog mouse movement needs to be applied with constant intervals, not when the device reports are emitted. There is some jitter on the device report frequency, especially when the controller is not close to the bluetooth receiver or there is something blocking the signal. This is not an issue with button presses as the delay and jitter are really small, but it is noticable when using relative analog stick mouse mappings.

So, I think we need a separate timer for emitting the relative analog mouse movements.

In addition, related to this issue, I think it would be useful to see some information about the device report frequency and jitter. Technically collecting this data shouldn't be very hard. The raw statistics could be shown with --dump-reports and some signal quality information could be shown always.

As of 7a79488 the mouse events are now consistently emitted every 5 ms regardless of any latency. If no report has been received inbetween then the last report is reused.

Ape commented

Thanks!

The default analog stick mouse sensitivity should probably be changed since the report interval was changed. Currently the default value is 0.3, but that's really slow. To match the interval change from 2 ms to 5 ms, the sensitivity should be 0.75 or let's say 0.8 for rounding.