[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