The major problem with the existing rawinput support is that it does not suppress auto-generating rawinput events from the server on normal motion events. So we end up with the "accelerated" input being translated to relative input. We really want the "unaccelerated" input and thus need to prevent a normal motion event from generating rawinput.
This patch set does two main things: - Add plumbing to server to allow graphics driver to prevent the server from making rawinput from INPUT_MOUSE and INPUT_KEYBOARD events - Major refactor for x11drv xinput2 (listen for events based on focus, use raw unaccelerated values for XI_RawMotion)
Tested on XWayland only with MouseTester.exe (https://github.com/microe1/MouseTester/releases) and Quake Live (ported this set of patches to proton).
-- v2: x11drv: lets get raw input really working rawinput: add trace and avoid re-processing win32u: SendInput should not cause rawinput events win32u: allow passing noraw flags to send_hardware_message