X11 is the only backend that still used the input event loop. This patch is an identical rewrite ofdev6deb09ef8a
which was then reverted in3bebe6461a
for reasons unrecorded. This patch is also the revert of22ba60e514
. Originally input devices were moved into their own event loop in7ea10864c2
and the reason for that is explained in7dbf5e2ea7
. The idea behind the input event loop was that it would be beneficial to process and relay input events to clients just once during an output repaint cycle, because clients cannot update the image on screen any faster anyway. All input events also carry a timestamp, so we didn't lose any timing information. This was supposed to save power by reducing the process wake-ups and context switches. There was also a mention of reducing lag. However, the concept of an output repaint loop does not really work out when you have several outputs, but the input devices are not exclusive to a certain output. The logic for driving the input event loop in Weston core was written to assume a single output. When you have multiple outputs with independent repaint cycles, the input event loop handling becomes fairly random, one output freezes input while another output thaws it, etc. The DRM backend stopped using the input event loop when it started using the libinput input backend, which became the default in3f5e906268
, and the old code was finally ripped out in823ad33ef3
. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
parent
94cb06a208
commit
157109b6d5
Loading…
Reference in new issue