On Thu Jul 31 15:43:54 2025 +0000, Tomasz Pakuła wrote:
I don't know what do do about the tests though as they are weird. The USB PID standard does NOT support autocenter so the only thing they are testing is this one specific out-of-spec thing only for Side Winder joysticks. This *maybe* could be useful if Wine wants to specifically support SideWinder in HIDRAW mode but then it should check device VID:PID and change how it works internally. Not in the bus but in the PID implemenmtation
The tests check how Windows DInput implementation behaves in the presence of a HID PID-compatible HID device, they are not specific to Microsoft devices as they use a different VID/PID.
We use the PID protocol internally to communicate between DInput and WineBus, because it's convenient and because it allows us to pass through everything in the hidraw case (which IMO is the best case scenario, and SDL/evdev backend will suffer from impedance mismatch as shown here).
I would even think that protocol conversion should probably be done in the Linux device drivers from HID PID (exposed to user space and Wine through "hidraw") to whatever vendor protocol the devices are using, instead of the current Wine HID PID (over SDL) over evdev over vendor, which suffers from multiple mismatching abstractions.