rvaiya / warpd

A modal keyboard-driven virtual pointer
MIT License
2.9k stars 131 forks source link

sway: Pointer slows and stops #217

Open tkna91 opened 1 year ago

tkna91 commented 1 year ago

OK for WINIT_UNIX_BACKEND=x11 alacritty, NG for WINIT_UNIX_BACKEND=wayland alacritty

https://user-images.githubusercontent.com/102382754/204746348-3061d74a-e34d-47bb-9db0-3979e73c33c6.mp4

It seems to be OK for GTK, QT and Xwayland apps and NG for Wayland app

https://user-images.githubusercontent.com/102382754/204746416-6553bb20-a38f-4f1c-92b7-ce0855cd88c3.mp4

It was the same in a multi-display environment and in a single-display laptop environment.

The cursor doesn't seem to work with 6d43797, but with 2f29c37 it does.

https://user-images.githubusercontent.com/102382754/204750267-c70c3e26-896c-46e6-ae2c-fa846254e4cf.mp4

https://user-images.githubusercontent.com/102382754/204752186-df006323-1512-4548-8bcd-736fd7de5787.mp4

$ pacman -Q warpd-git sway-im-git wlroots-git linux xorg-xeyes
warpd-git r259.3376045-1
sway-im-git r7015.94b69acf-1
wlroots-git 0.17.0.r5941.c02872e0-1
linux 6.0.9.arch1-1
xorg-xeyes 1.2.0-1
$
tkna91 commented 1 year ago

I logged in with agetty after the following and started sway with the sway command and it was the same.

mv ~/.config/sway ~/.config/sway.bk
reboot

https://user-images.githubusercontent.com/102382754/204757968-bc0351f1-1ccd-4d83-ad03-1cb26008261c.mp4

tkna91 commented 1 year ago

Similar events do not occur in 731f533 wayland: Fix initial pointer position (#142)

https://user-images.githubusercontent.com/102382754/204768751-c281bb0c-0868-4a91-8bd2-685d3f9a3f2a.mp4

tkna91 commented 1 year ago

It appears to occur from the following

9c4a7cd wayland: fix virtual mouse position for setups where virtual pointer space doesn't begin at (0, 0)

https://user-images.githubusercontent.com/102382754/204770842-352046e7-93d0-4093-8b7a-a289bb0c167a.mp4

rvaiya commented 1 year ago

Can you do the same demo using the branch 217-dbg? (git fetch origin && git checkout pub/217-dbg && make && ./bin/warpd --normal)

tkna91 commented 1 year ago
$ git fetch origin && git checkout pub/217-dbg && make
error: pathspec 'pub/217-dbg' did not match any file(s) known to git
$ 

The above did not work so I did the following. It still seems to reproduce.

$ git fetch origin && git checkout origin/217-dbg && make clean && make
$ ./bin/warpd --version
warpd v1.3.5 (built from: 983d057)
$ ./bin/warpd --normal

https://user-images.githubusercontent.com/102382754/205238800-5be9a4ef-f5bf-48f2-92a6-e62d882b93be.mp4

rvaiya commented 1 year ago

The above did not work so I did the following.

Sorry, that should indeed have been git checkout origin/217-dbg as above.

Can you post the output of217-dbg2?

tkna91 commented 1 year ago

Is this correct? I uploaded the video to another server because it exceeded 10MB

$ ./bin/warpd --version
warpd v1.3.5 (built from: 983d057)
$ 

screencast: https://streamable.com/37qht4

20221204-173259.log

=> I made a mistake. I'll redo it.

tkna91 commented 1 year ago

I did it.

$ ./bin/warpd --version     
warpd v1.3.5 (built from: 9133aa2)
$ 

screencast: https://streamable.com/zt6m84

20221204-174513.log

rvaiya commented 1 year ago

Odd. 9133aa2 reverts 9c4a7cd2e which you claim was causing the problem, but you appear to have the same issue. Can you confirm that 9c4a7cd2e is indeed a the problematic commit? (i.e it works in 731f533b9 but not in 9c4a7cd2e).

Make sure you run make clean to ensure there are no build artifacts causing interference.

tkna91 commented 1 year ago

I've been checking with the following shell scripts. I think you are right, I did not make clean when I checked before.

test.sh

#!/bin/bash
set -x

# done:
# 731f533
# 9c4a7cd
# 3253e54
# 5ae489a
# 1e99371
# f3450c7
# 3c966b2
# f999864
# 5cec25d
# 88222f2
# b7d716f
# 5d69dd7
# c821a46
# 6f4a046
# 78dc79d
# 7ffad37
# 538ee75
# f2f044d
# 641cdaf
# 04d9f78
# bcffb35
# daf11b2
# 639a069
# a2deb58
# faa423d
# fe56335
# 567205b
# 714d977
# b7154c7
# 5971cfb
# 111b957
# effea40
# c073cfe
# 6ece9f2
# 1310c42
# 3f77b0c
# d29c133
# 189bffe
# a8b0273
# e30031e
# 1b8caae
# f67c2e0
# 4e0c487

hash="
6d43797
15631a5
b9f65f9
2f29c37
48426d3
91007f9
5b32575
24cf068
d6ea591
2fc0e8b
d319544
3376045
b2792bf
a33c400
983d057
9133aa2
"

for i in $hash ; do
    git reset --hard $i
    make clean && make
    ./bin/warpd --version
    ./bin/warpd --normal
    echo -n "next[enter]?"
    read
done

For example, [destroyed object]: error -1: surface was destroyed before its role object for 6d43797 and Segmentation fault for 15631a5. Is there something wrong with the way I am doing it? Can I just ignore it?

+ ./bin/warpd --version
warpd v1.3.5 (built from: 6d43797)
+ ./bin/warpd --normal
[destroyed object]: error -1: surface was destroyed before its role object
+ ./bin/warpd --version
warpd v1.3.5 (built from: 15631a5)
+ ./bin/warpd --normal
./test.sh: line 68: 1008861 Segmentation fault      (core dumped) ./bin/warpd --normal
+ echo -n 'next[enter]?'
next[enter]?+ read

If you can ignore them, it appears to have occurred from the following.

2f29c37 wayland: Fix multi-screen regression introduced in 15631a5

https://streamable.com/wvbx03