Wayland: Input event dispatch to clients is delayed to the next composited frame
Description
When compressible input events (cursor move, touch update) are received from libinput, they are always queued in Clutter to be handled when a new frame is composited.
This means that their resolution/frequency is limited by the refresh rate of the monitor. It also means that Mutter creates input latency of up to a single refresh cycle (~16 ms for 60Hz) for Wayland clients.
While input events to the shell UI should only be handled once in a display refresh cycle, sending input events earlier to clients would allow their next frame to be more up-to-date.
In X sessions, input events are sent by the X server to the relevant X clients, including the window manager. In that case, Mutter as the window manager doesn't prevent clients from receiving and handling their input events early; it only delays its own handling of these events.
Possible Solution
Send events to clients as soon as they are received, while also queuing them for handling on the next update.