[RFC PATCH] dinput: Introduce new HID joystick backend.
Rémi Bernon
rbernon at codeweavers.com
Thu Jun 17 11:47:32 CDT 2021
On 6/17/21 6:40 PM, Zebediah Figura (she/her) wrote:
> On 6/1/21 4:09 AM, Rémi Bernon wrote:
>> Sending this as RFC because I'm not completely sure how to proceed (and
>> also because ideally it would depend on 206872 which is not merged yet).
>>
>> The problem is that this new backend will fail most dinput(8) tests
>> until it's more properly implemented, although the testbot doesn't have
>> HID devices to test with.
>>
>> It could also cause issues if the new backend is enumerated and somehow
>> is selected by default for some reason.
>>
>> Either we don't really care, or the new backend could be conditionally
>> enabled with a configure flag?
>
> For whatever it's worth, this strikes me as a good idea.
>
> Probably what should be done is to deprioritize or even explicitly
> disable this backend in the registry until it's ready to work, at which
> point we can make it the default, keeping the old backends around until
> all the bugs get ironed out. I don't know whether it's worth completely
> disabling it just to make the tests pass for the TestBot and Alexandre;
> I guess I'll leave that one to them.
I don't think there's a registry entry for that? The backends are just
enumerated in order. It could be added I guess but I'm not even sure
it's worth it. I think the way it usually works is that each backend
lists their device, creating physically duplicated devices but with
different features (like the linux and linuxinput joysticks).
>
> Of course, introducing a switch like that is a good way to ensure that
> concerned users always turn it off, and that the new backend never
> really gets tested, but it would be unfair to offer no way to revert to
> the old behaviour...
>
I don't even think the TestBot will notice, as it doesn't have any
joysticks.
> (Side note: looking at this patch shows me just how ugly the
> IDirectInputDevice8WVtbl implementation is. If it's really worth sharing
> all that code, I'd advocate for using a struct dinput_device_ops
> instead...)
>
Yeah although that would require cleaning up all the other joystick
backend code, which I understand will ultimately be removed so it's a
bit of a waste of time. Finishing the cleanup after the HID backend is
complete is probably simpler.
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list