Re: [PATCH weston 00/13] Add tablet support
On Fri, Nov 06, 2015 at 03:13:46PM -0800, Jason Gerecke wrote: > On Thu, Nov 5, 2015 at 8:31 PM, Peter Hutterer> wrote: > > > > This set adds support for graphics tablets to weston. It's not fully > > complete, there are a couple of fixmes in it but the patchset is getting a > > bit unwieldly. And there are some discussions on how to do things anyway. > > > > Note: This needs the tablet-support branch from libinput to work. And it is > > on top of Jonas's wip/wayland-protocols github branch (ff0452cea150c). > > > > Tablet events are sent serially, terminated by a frame event. A toolkit > > should accumulate them and then pass them on as one struct to the client. We > > don't do that atm, it may be beyond libtoytoolkit's scope to really > > integrate this properly. > > > > The tablet has a separate cursor. That's a conscious decision since the > > focus handling on tablets closer to an absolute touch screen than a mouse, > > but unlike touch you usually want a cursor shape to indicate the precise > > position. > > > > The rest is fairly straightforward, though as said above, some details are > > missing. Implementing this also showed that libinput needs a few extra > > things added to it. > > > > Cheers, > > Peter > > Having trouble getting this patchset to work properly for me. Of the > many times I've launched 'weston-tablet', only once did it work as > expected. The rest of the time I get no response and more often than > not a segfault when the pen leaves proximity (first backtrace). I've > also seen a segfault when simply trying to exit Weston with > CTRL+ALT+BACKSPACE (second backgrace). > > Haven't had time to track down the cause; all I know at the moment is > that it seems the demo client's proximity_in_handler isn't actually > being called for some reason... fwiw, the reason for this bug was: http://lists.freedesktop.org/archives/wayland-devel/2016-February/026765.html Cheers, Peter > > > Program received signal SIGSEGV, Segmentation fault. > 0x0041596f in default_grab_tablet_tool_proximity_out > (grab=0x20e8388, time=23980253) at src/input.c:812 > 812 if (weston_surface_is_mapped(tool->sprite->surface)) > (gdb) bt > #0 0x0041596f in default_grab_tablet_tool_proximity_out > (grab=0x20e8388, time=23980253) at src/input.c:812 > #1 0x00418ffb in notify_tablet_tool_proximity_out > (tool=0x20e82d0, time=23980253) at src/input.c:2307 > #2 0x7fe3699a6ce1 in handle_tablet_proximity > (libinput_device=0x1c1d7c0, proximity_event=0x20e0580) at > src/libinput-device.c:320 > #3 0x7fe3699a7587 in evdev_device_process_event (event=0x20e0580) > at src/libinput-device.c:543 > #4 0x7fe3699a5cf3 in process_event (event=0x20e0580) at > src/libinput-seat.c:169 > #5 0x7fe3699a5d14 in process_events (input=0x1b07c88) at > src/libinput-seat.c:179 > #6 0x7fe3699a5d79 in udev_input_dispatch (input=0x1b07c88) at > src/libinput-seat.c:190 > #7 0x7fe3699a5da6 in libinput_source_dispatch (fd=16, mask=1, > data=0x1b07c88) at src/libinput-seat.c:200 > #8 0x7fe36b3bcc72 in wl_event_loop_dispatch (loop=0x1aef220, > timeout=timeout@entry=-1) at src/event-loop.c:422 > #9 0x7fe36b3bb5e5 in wl_display_run (display=0x1aef190) at > src/wayland-server.c:1004 > #10 0x004275c6 in main (argc=1, argv=0x7ffe86bcca88) at src/main.c:871 > > > Program received signal SIGSEGV, Segmentation fault. > 0x7f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at src/wayland-util.c:57 > 57 elm->prev->next = elm->next; > (gdb) bt > #0 0x7f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at > src/wayland-util.c:57 > #1 0x0041550f in weston_tablet_destroy (tablet=0x195a8e0) at > src/input.c:699 > #2 0x0041a9df in weston_seat_release_tablet > (tablet=0x195a8e0) at src/input.c:3116 > #3 0x7f3f3cc22ff3 in evdev_device_destroy (device=0x19acc80) at > src/libinput-device.c:867 > #4 0x7f3f3cc20bc6 in udev_seat_remove_devices (seat=0x19a8fa0) at > src/libinput-seat.c:126 > #5 0x7f3f3cc21427 in udev_seat_destroy (seat=0x19a8fa0) at > src/libinput-seat.c:397 > #6 0x7f3f3cc211b0 in udev_input_destroy (input=0x1852c88) at > src/libinput-seat.c:333 > #7 0x7f3f3cc1f5f7 in drm_destroy (ec=0x183bfc0) at > src/compositor-drm.c:2712 > #8 0x0041379f in weston_compositor_destroy > (compositor=0x183bfc0) at src/compositor.c:4780 > #9 0x004275f1 in main (argc=1, argv=0x7ffdd6f32308) at src/main.c:882 > > Jason > --- > Now instead of four in the eights place / > you’ve got three, ‘Cause you added one / > (That is to say, eight) to the two, / > But you can’t take seven from three,/ > So you look at the sixty-fours > ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 00/13] Add tablet support
On 7/11/2015 09:13 , Jason Gerecke wrote: On Thu, Nov 5, 2015 at 8:31 PM, Peter Huttererwrote: This set adds support for graphics tablets to weston. It's not fully complete, there are a couple of fixmes in it but the patchset is getting a bit unwieldly. And there are some discussions on how to do things anyway. Note: This needs the tablet-support branch from libinput to work. And it is on top of Jonas's wip/wayland-protocols github branch (ff0452cea150c). Tablet events are sent serially, terminated by a frame event. A toolkit should accumulate them and then pass them on as one struct to the client. We don't do that atm, it may be beyond libtoytoolkit's scope to really integrate this properly. The tablet has a separate cursor. That's a conscious decision since the focus handling on tablets closer to an absolute touch screen than a mouse, but unlike touch you usually want a cursor shape to indicate the precise position. The rest is fairly straightforward, though as said above, some details are missing. Implementing this also showed that libinput needs a few extra things added to it. Cheers, Peter Having trouble getting this patchset to work properly for me. Of the many times I've launched 'weston-tablet', only once did it work as expected. The rest of the time I get no response and more often than not a segfault when the pen leaves proximity (first backtrace). I've also seen a segfault when simply trying to exit Weston with CTRL+ALT+BACKSPACE (second backgrace). Haven't had time to track down the cause; all I know at the moment is that it seems the demo client's proximity_in_handler isn't actually being called for some reason... I've seen this bug a few times but don't know what the cause of it is yet. I *think* it may be a libinput bug because the libinput event never appears in the log. The problem is that once the bug happens it happens repeatedly, but otherwise it's really hard to trigger. Unplugging the tablet usually stops it but not always, but I haven't seen it since Wed now so i'm struggling to reproduce it right now. Also, fwiw so you don't have to handle the patchset itself: http://github.com/whot/weston/tree/tablet-support-v3 (f4c8c77) http://github.com/whot/wayland-protocols/tree/wip/wayland-tablet (8ded9b) and libinput's tablet-support branch (ab6a409) Cheers, Peter ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 00/13] Add tablet support
On Thu, Nov 5, 2015 at 8:31 PM, Peter Huttererwrote: > > The tablet has a separate cursor. That's a conscious decision since the > focus handling on tablets closer to an absolute touch screen than a mouse, > but unlike touch you usually want a cursor shape to indicate the precise > position. > Very strongly disagree with this The tablet should control the seat's pointer. Users do not want to see two different cursors in most cases. If they do then they can configure the tablet to be a different seat. It does not matter that tablets (sometimes) are absolute devices. When the pen enters the pickup space for the tablet, the cursor will jump to that location. The fact that the user may have moved it with the mouse beforehand makes absolutely no difference about the need to support such jumping. ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 00/13] Add tablet support
On Thu, Nov 5, 2015 at 8:31 PM, Peter Huttererwrote: > > This set adds support for graphics tablets to weston. It's not fully > complete, there are a couple of fixmes in it but the patchset is getting a > bit unwieldly. And there are some discussions on how to do things anyway. > > Note: This needs the tablet-support branch from libinput to work. And it is > on top of Jonas's wip/wayland-protocols github branch (ff0452cea150c). > > Tablet events are sent serially, terminated by a frame event. A toolkit > should accumulate them and then pass them on as one struct to the client. We > don't do that atm, it may be beyond libtoytoolkit's scope to really > integrate this properly. > > The tablet has a separate cursor. That's a conscious decision since the > focus handling on tablets closer to an absolute touch screen than a mouse, > but unlike touch you usually want a cursor shape to indicate the precise > position. > > The rest is fairly straightforward, though as said above, some details are > missing. Implementing this also showed that libinput needs a few extra > things added to it. > > Cheers, > Peter Having trouble getting this patchset to work properly for me. Of the many times I've launched 'weston-tablet', only once did it work as expected. The rest of the time I get no response and more often than not a segfault when the pen leaves proximity (first backtrace). I've also seen a segfault when simply trying to exit Weston with CTRL+ALT+BACKSPACE (second backgrace). Haven't had time to track down the cause; all I know at the moment is that it seems the demo client's proximity_in_handler isn't actually being called for some reason... Program received signal SIGSEGV, Segmentation fault. 0x0041596f in default_grab_tablet_tool_proximity_out (grab=0x20e8388, time=23980253) at src/input.c:812 812 if (weston_surface_is_mapped(tool->sprite->surface)) (gdb) bt #0 0x0041596f in default_grab_tablet_tool_proximity_out (grab=0x20e8388, time=23980253) at src/input.c:812 #1 0x00418ffb in notify_tablet_tool_proximity_out (tool=0x20e82d0, time=23980253) at src/input.c:2307 #2 0x7fe3699a6ce1 in handle_tablet_proximity (libinput_device=0x1c1d7c0, proximity_event=0x20e0580) at src/libinput-device.c:320 #3 0x7fe3699a7587 in evdev_device_process_event (event=0x20e0580) at src/libinput-device.c:543 #4 0x7fe3699a5cf3 in process_event (event=0x20e0580) at src/libinput-seat.c:169 #5 0x7fe3699a5d14 in process_events (input=0x1b07c88) at src/libinput-seat.c:179 #6 0x7fe3699a5d79 in udev_input_dispatch (input=0x1b07c88) at src/libinput-seat.c:190 #7 0x7fe3699a5da6 in libinput_source_dispatch (fd=16, mask=1, data=0x1b07c88) at src/libinput-seat.c:200 #8 0x7fe36b3bcc72 in wl_event_loop_dispatch (loop=0x1aef220, timeout=timeout@entry=-1) at src/event-loop.c:422 #9 0x7fe36b3bb5e5 in wl_display_run (display=0x1aef190) at src/wayland-server.c:1004 #10 0x004275c6 in main (argc=1, argv=0x7ffe86bcca88) at src/main.c:871 Program received signal SIGSEGV, Segmentation fault. 0x7f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at src/wayland-util.c:57 57 elm->prev->next = elm->next; (gdb) bt #0 0x7f3f3e63a0e7 in wl_list_remove (elm=0x195a910) at src/wayland-util.c:57 #1 0x0041550f in weston_tablet_destroy (tablet=0x195a8e0) at src/input.c:699 #2 0x0041a9df in weston_seat_release_tablet (tablet=0x195a8e0) at src/input.c:3116 #3 0x7f3f3cc22ff3 in evdev_device_destroy (device=0x19acc80) at src/libinput-device.c:867 #4 0x7f3f3cc20bc6 in udev_seat_remove_devices (seat=0x19a8fa0) at src/libinput-seat.c:126 #5 0x7f3f3cc21427 in udev_seat_destroy (seat=0x19a8fa0) at src/libinput-seat.c:397 #6 0x7f3f3cc211b0 in udev_input_destroy (input=0x1852c88) at src/libinput-seat.c:333 #7 0x7f3f3cc1f5f7 in drm_destroy (ec=0x183bfc0) at src/compositor-drm.c:2712 #8 0x0041379f in weston_compositor_destroy (compositor=0x183bfc0) at src/compositor.c:4780 #9 0x004275f1 in main (argc=1, argv=0x7ffdd6f32308) at src/main.c:882 Jason --- Now instead of four in the eights place / you’ve got three, ‘Cause you added one / (That is to say, eight) to the two, / But you can’t take seven from three,/ So you look at the sixty-fours ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel
[PATCH weston 00/13] Add tablet support
This set adds support for graphics tablets to weston. It's not fully complete, there are a couple of fixmes in it but the patchset is getting a bit unwieldly. And there are some discussions on how to do things anyway. Note: This needs the tablet-support branch from libinput to work. And it is on top of Jonas's wip/wayland-protocols github branch (ff0452cea150c). Tablet events are sent serially, terminated by a frame event. A toolkit should accumulate them and then pass them on as one struct to the client. We don't do that atm, it may be beyond libtoytoolkit's scope to really integrate this properly. The tablet has a separate cursor. That's a conscious decision since the focus handling on tablets closer to an absolute touch screen than a mouse, but unlike touch you usually want a cursor shape to indicate the precise position. The rest is fairly straightforward, though as said above, some details are missing. Implementing this also showed that libinput needs a few extra things added to it. Cheers, Peter ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel