Re: [PATCH weston 00/13] Add tablet support

2016-02-02 Thread Peter Hutterer
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

2015-11-06 Thread Peter Hutterer

On 7/11/2015 09:13 , 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...


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

2015-11-06 Thread Bill Spitzak
On Thu, Nov 5, 2015 at 8:31 PM, Peter Hutterer 
wrote:

>
> 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

2015-11-06 Thread Jason Gerecke
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...


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

2015-11-05 Thread Peter Hutterer

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