On 12/03/2010 01:30 AM, Peter Hutterer wrote: > On Thu, Dec 02, 2010 at 10:30:56AM -0500, Chase Douglas wrote: >> On 12/01/2010 04:27 PM, Daniel Stone wrote: >>> On Fri, Nov 19, 2010 at 01:52:39PM -0500, Chase Douglas wrote: >>>> A touch event is not delivered according to the device hierarchy. All >>>> touch >>>> -events are sent only through their originating slave devices. >>>> +events are sent only through their originating slave devices. However, >>>> +dependent touch devices will only emit touch events if they are attached >>>> to a >>>> +master device. This is due to the touch delivery being dependent on the >>>> +location of a cursor. >>> >>> I find this fairly worrying. The main reason not to send touch events >>> through MDs is that it would necessarily cause a storm of >>> DeviceChangedEvents. > > DCE's are only created when you switch between the devices. So unless you > use your mouse _and_ your touchscreen(s) at the same time, no DCEs will be > generated. Even if you use mouse and touchscreen in a serial manner, you'll > only get one DCE whenever you switch between the two.
What if you have a specialized application, like a DJ app, that uses two magic trackpads with MT simultaneously? If they are both connected to the same MD, you'll have a storm of DCEs as each touch of each trackpad is updated. Granted it likely won't be interleaved in between every touch event, but it will likely be interleaved between touch frames coming out of evdev. Further, aside from the DCE storm, we would need to be updating the touch classes on the master device pointer, which I think would be a lot of wasted effort. The client can look at the sourceid of the device event to determine where it came from and to determine the properties of the device. >> I am ok with sending events through the MD if the DCEs are not generated >> for touch events and MDs do not copy touch axes. I think that alleviates >> the potential performance impact. > > what performance impact? I don't think the DCE's are the performance impact > we have to worry about. if we're sending a DCE every few seconds but > multiple touch events as second, our optimization paths are somewhere else. As noted above, I'm worried about sending a DCE, under specific circumstances, every touch frame. That's a lot of DCEs :). -- Chase _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
