GTK3 does not smoothly track multiple touches
<!-- Thank you for using postmarketOS! In order to speed up process of resolving your issue, we would like you to fill in the following : --> ### Describe your issue On an OP6 running PmOS Edge, the "event axes" GTK3 demo (and other GTK3 programs that rely on multiple touch points) do not smoothly respond to touch events from multiple fingers. On a laptop form-factor machine running Arch Linux (with a touchscreen), they do. #### How to reproduce your issue? Run `gtk3-demo --run=event_axes` and drag two fingers diagonally across the screen. #### What's the current behaviour? The touch axes displayed for the first finger to touch the screen are frozen until the second finger stops moving, at which point they jump to the correct position. #### What's the expected behaviour? The touch points displayed should both follow fingers as they are dragged, not just when motion stops. ### What device are you using? oneplus-enchilada ### On what postmarketOS version did you encounter the issue? * [x] edge (`master` branch) * [ ] `v23.06` * [ ] `v22.12` (Supported until 2023-07-06) * [x] I confirm that the issue still is present after running `sudo apk upgrade -a` ### On what environment did you encounter the issue? #### Environments * [ ] GNOME Shell on Mobile * [x] Phosh * [ ] Plasma Mobile * [ ] Sxmo (Wayland/Sway) **Please post the output of `sxmo_version.sh`** * [ ] Other: **Please fill out** ### How did you get postmarketOS image? * [x] from https://images.postmarketos.org * [ ] I built it using pmbootstrap * [ ] It was preinstalled on my device ### What's the build date of the image? (in yyyy-mm-dd format) unsure ### Additional information Based on watching output from `WAYLAND_DEBUG=client`, I don't think this is a compositor issue or a kernel issue. The receives touch motion events that look sane for both fingers every frame (the second field in `wl_touch::motion` is the touch id): ``` [3165577.863] wl_touch@10.motion(74689793, 0, 317.00000000, 592.50000000) [3165577.975] wl_touch@10.motion(74689793, 1, 131.00000000, 511.00000000) [3165578.078] wl_touch@10.frame() [3165582.201] wl_touch@10.motion(74689799, 0, 316.00000000, 594.50000000) [3165582.299] wl_touch@10.motion(74689799, 1, 130.50000000, 512.50000000) [3165582.393] wl_touch@10.frame() [3165590.009] wl_touch@10.motion(74689807, 0, 315.50000000, 596.00000000) [3165590.158] wl_touch@10.motion(74689807, 1, 130.00000000, 513.50000000) [3165590.242] wl_touch@10.frame() [3165598.507] wl_touch@10.motion(74689816, 0, 314.50000000, 597.00000000) [3165598.551] wl_touch@10.motion(74689816, 1, 129.50000000, 515.00000000) [3165598.576] wl_touch@10.frame() [3165609.823] wl_touch@10.motion(74689824, 0, 314.00000000, 598.50000000) [3165609.916] wl_touch@10.motion(74689824, 1, 129.50000000, 515.50000000) [3165609.985] wl_touch@10.frame() ``` This seems more likely to be a GTK issue in event handling, possibly due to downstream patches or shipping an outdated version (on an Arch machine with GTK3 v3.24.38, the touch points track fingers as expected).
issue