[PATCH libinput v9 0/2] add orientation, size and pressure of touch

Peter Hutterer peter.hutterer at who-t.net
Mon Nov 23 16:41:49 PST 2015


On Mon, Nov 23, 2015 at 07:58:28PM +0100, Andreas Pokorny wrote:
> Hi,
> The scale of major minor is still an open problem. As you know none of the
> reported absinfos contains resolution information. The reported size range
> is somewhat similar acress various devices, but needs different scaling
> factors.
> I have tested the patch with meizu mx4, nexus4, aquaris e4.5, nexus10.
> Apart from the already known driver issues, and sometimes astonishing lack
> of accuracy it works fine.
> 
> So to get to the right values I measured the size of my fingerprints with
> different amount of pressure and tried to reproduce the same amount of
> pressure on the touch screen and looked at the result.
> I am still gathering numbers but for example on mx4 to get to convincing
> diameter sizes multiplying the mm value with 2.0 gives good results. On
> Nexus 4 I found something between 2.1 and 2.2 to be reasonable. The
> measured values on the e4.5 jumped a lot further. I need a more accurate
> method for that. In the second round I will probably try to verify the
> result with a finger-paint application.

that does not fill me with confidence. we can't expose an API where we say
it's in mm when none of the devices have anything close to being usable.
if this is what we see for most devices, we need to change the API into
something less unreliable.

First thought here is to normalize major/minor as well into a range where 1
represents "normal touch". that makes scaling a lot easier when devices
provide complete garbage and removes the pretense of accuracy.

> On Mon, Nov 23, 2015 at 5:19 AM, Peter Hutterer <peter.hutterer at who-t.net>
> wrote:
> 
> > On Fri, Nov 13, 2015 at 08:46:42AM +0100, Andreas Pokorny wrote:
> > > Hi,
> > > This version contains several rewordings and documentation additions
> > from Peter
> > > that I missed in the last update, within the first patch of the series,
> > while
> > > the second patch contains no changes compared to v8.
> >
> > two high-level questions:
> > - do you have a list of devices you've tested on so far that provide useful
> >   data?
> >   we need to figure out how to handle devices that have invalid ranges,
> > such
> >   as the T440s on my desk. Range claims 0..255, the max I can trigger with
> > a
> >   finger is ~10 which atm translates to 0.20mm or so. I can get up to
> >   about 20 if I put my whole palm down.
> >   either way, we need some strategy in place to deal with those devices and
> >   figure out how widespread those are.
> >
> 
> I havent figured out how to identify the type of touch screen. The device
> names / vendor ids .. are rather inconclusive. But yes I think we need some
> way to configure a scaling factor.

well, we can use DMI information as well, that usually works well enough for
touchpad devices. last option is a udev callout when we match specific
system information, that callout can then dig into the device further. We do
that for some touchpad firmware version already (see libinput-model-quirks).

> > - do you have client-side code that makes use of these properties yet? I'd
> >   like to have a look at it.
> >
> 
> We do use that information in the mirclient backend of qt. Not sure if qt
> uses the information for anytihing internally - but it is available to
> applications.
> I mainly test with a plain-mir demo application called
> mir_client_fingerpaint .

do you have the source available somewhere?

Cheers,
   Peter


More information about the wayland-devel mailing list