On Fri Aug 8 12:08:40 2025 +0000, Rémi Bernon wrote:
The evdev and SDL backends suffer from impedence mismatch and they cannot work identically to hidraw on every possible device. You should use hidraw with your device, and every time it is supported, and evdev / SDL for every other devices where it's not. Then making sure evdev / SDL works best for devices without the hidraw alternative is more important than making all the backends work similarly for devices which can already be used with hidraw.
Right. That makes sense. I don't think, however, that this merge request makes any devices work better. Instead I believe it just breaks `DIPROP_AUTOCENTER` support in a lot of cases.
Specifically, wrt to devices that hidraw doesn't work (e.g., so UDEV (input) or SDL are the only option) I expect * all non-HID driver devices for which the kernel driver supported autocenter (e.g., the I-FORCE) are now broken wrt `DIPROP_AUTOCENTER` for all buses
with respect to devices where hidraw wouldn't work with autocenter, but UDEV (input) or SDL would (e.g., devices that that don't turn autocenter on on reset and off on stop all effects) * all HID non-pidff driver devices for which the kernel driver support autocenter (e.g., the Logitech WingMan Force) are now broken wrt `DIPROP_AUTOCENTER` for all buses
and with respect to devices where hidraw does work with autocenter (e.g., devices that do turn autocenter on on reset and off on stop all effects * all HID pdiff driver devices for which the kernel driver supported autocenter (e.g., the USB Sidewinder 2) are broken wrt `DIPROP_AUTOCENTER` for all buses but hidraw
Unfortunately I don't have any of these devices to test apart for the USB Sidewinder 2 to prove this. The best I could do was to do was write a [test program](https://github.com/twhitehead/issue-wine-ff-autocenter) so people with them could check. It sounds like @TomaszPakula has some wheels to test. And perhaps @JacKeTUs has some non-HID devices to test too or knows someone who does? I would really appreciate it if everyone could test their device as, if I am correct, there is a lot of breakage here.
The only two things I see it _fixing_ is when autocenter is desired to be off and * the program assumes `DIPROP_AUTOCENTER` is off by default (which it wasn't under Wine), doesn't check or set it, and so winds up with it on, * the kernel driver claims autocenter support but doesn't actually support disabling it so it gets enabled (on the internal reset) and then winds up stuck on despite being told to turn off (on the internal stop all effects).
Of course, if either of these circumstances exist, this doesn't really fix anything. It just switches the breakage from permanently on to permanently off. Hence the italics.
My expectation is that this merge request originated out of the first of these. That is easy to fix once verified (please run the test program!), and I would be happy to put together a merge request for it. With regard to the second, if such drivers exist, it a kernel driver bug and needs to be fixed there (or, worst case, an if statement can be be added to Wine to disable autocenter support under UDEV (input) and SDL only for only that device).