[PATCH] server: Don't wait for low level hook result when queueing hardware message.
Piotr Caban
piotr.caban at gmail.com
Tue Sep 14 14:03:46 CDT 2021
On 9/14/21 7:57 PM, Rémi Bernon wrote:
> On 9/14/21 7:37 PM, Piotr Caban wrote:
>> On 9/14/21 7:03 PM, Rémi Bernon wrote:
>>> With an HID test signed driver, like I'm currently adding for dinput
>>> testing, we could test mouse and keyboard input without going through
>>> SendInput / kbd_event / mouse_event.
>> The problem is that I need the event to originate from graphics driver
>> to show the bug. It's currently the only path that calls ll hooks.
>>
>> Thanks,
>> Piotr
>
> Yes, of course.
>
> Then I think the issue may be more about the graphics driver
> architecture, where we poll and process X11 events in
> MsgWaitForMultipleObjects.
>
> I remember quite some time ago that for some reason I removed the wait
> for ll-hooks and julliard told me that it was needed for proper ll-hook
> processing.
>
> I'm still not much more knowledgeable about how ll-hooks work right now,
> but it may still be required, and the correct fix would be to have mouse
> and keyboard input coming from a separate source, as we do for other
> devices.
>
> It's a pretty big change and has a lot of implications though.
I fail to see how it breaks ll-hooks processing. I've also done quite a
lot of testing and it seems to be working good.
Yes, having __wine_send_input in separate thread/process will also fix
the issue. If it's preferred to add something like wine keyboard driver
that accepts key events from graphic drivers I can try to investigate it.
I think that pumping X11 events in MsgWaitForMultipleObjects is a
separate issue. No matter where we do the pumping we don't want it to
hung on ll hook.
More information about the wine-devel
mailing list