Weston-vivante: event processing lagging behind

Hi all,

I am currently trying to debug our systems touch user experience. Especially the scrolling behavior is inconsistent, and I was wondering if the weston-vivante event processing may have part in it. The journal shows the following entries, where eafcb1148173 is the docker container id of the torizon/weston-vivante:3 image:

Nov 09 14:35:25 apalis-imx8-14798028 eafcb1148173[865]: [14:35:25.150] event2  - ILI210x Touchscreen: client bug: event processing lagging behind by 29ms, your system is too slow
Nov 09 14:35:28 apalis-imx8-14798028 eafcb1148173[865]: [14:35:28.295] event2  - ILI210x Touchscreen: client bug: event processing lagging behind by 34ms, your system is too slow
Nov 09 14:35:31 apalis-imx8-14798028 eafcb1148173[865]: [14:35:31.787] event2  - ILI210x Touchscreen: client bug: event processing lagging behind by 27ms, your system is too slow
Nov 09 14:35:33 apalis-imx8-14798028 eafcb1148173[865]: [14:35:33.798] event2  - ILI210x Touchscreen: client bug: event processing lagging behind by 28ms, your system is too slow
Nov 09 14:35:39 apalis-imx8-14798028 eafcb1148173[865]: [14:35:39.446] event2  - ILI210x Touchscreen: client bug: event processing lagging behind by 25ms, your system is too slow
Nov 09 14:35:39 apalis-imx8-14798028 eafcb1148173[865]: [14:35:39.446] event2  - ILI210x Touchscreen: WARNING: log rate limit exceeded (5 msgs per 60min). Discarding future messages.

We use an Apalis iMX8QM 4GB IT on a custom carrier board that has a 7inch touch display with a ili2511 chip. The closest working driver version was ili210x.c of the 5.15 kernel as out of tree module for the Torizon OS 6.4 build 5. We can see touch events incoming roughly every 40ms when swiping over the screen (using evtest):

Event: time 1699543733.075129, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 527
Event: time 1699543733.075129, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11415
Event: time 1699543733.075129, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7875
Event: time 1699543733.075129, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1699543733.075129, type 3 (EV_ABS), code 0 (ABS_X), value 11415
Event: time 1699543733.075129, type 3 (EV_ABS), code 1 (ABS_Y), value 7875
Event: time 1699543733.075129, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 10
Event: time 1699543733.075129, -------------- SYN_REPORT ------------
Event: time 1699543733.250760, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11395
Event: time 1699543733.250760, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7858
Event: time 1699543733.250760, type 3 (EV_ABS), code 0 (ABS_X), value 11395
Event: time 1699543733.250760, type 3 (EV_ABS), code 1 (ABS_Y), value 7858
Event: time 1699543733.250760, -------------- SYN_REPORT ------------
Event: time 1699543733.290743, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11291
Event: time 1699543733.290743, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7761
Event: time 1699543733.290743, type 3 (EV_ABS), code 0 (ABS_X), value 11291
Event: time 1699543733.290743, type 3 (EV_ABS), code 1 (ABS_Y), value 7761
Event: time 1699543733.290743, -------------- SYN_REPORT ------------
Event: time 1699543733.330754, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11153
Event: time 1699543733.330754, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7605
Event: time 1699543733.330754, type 3 (EV_ABS), code 0 (ABS_X), value 11153
Event: time 1699543733.330754, type 3 (EV_ABS), code 1 (ABS_Y), value 7605
Event: time 1699543733.330754, -------------- SYN_REPORT ------------
Event: time 1699543733.370805, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11049
Event: time 1699543733.370805, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7460
Event: time 1699543733.370805, type 3 (EV_ABS), code 0 (ABS_X), value 11049
Event: time 1699543733.370805, type 3 (EV_ABS), code 1 (ABS_Y), value 7460
Event: time 1699543733.370805, -------------- SYN_REPORT ------------
Event: time 1699543733.410777, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10911
Event: time 1699543733.410777, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7249
Event: time 1699543733.410777, type 3 (EV_ABS), code 0 (ABS_X), value 10911
Event: time 1699543733.410777, type 3 (EV_ABS), code 1 (ABS_Y), value 7249
Event: time 1699543733.410777, -------------- SYN_REPORT ------------
Event: time 1699543733.450793, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10777
Event: time 1699543733.450793, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7045
Event: time 1699543733.450793, type 3 (EV_ABS), code 0 (ABS_X), value 10777
Event: time 1699543733.450793, type 3 (EV_ABS), code 1 (ABS_Y), value 7045
Event: time 1699543733.450793, -------------- SYN_REPORT ------------
Event: time 1699543733.490832, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10693
Event: time 1699543733.490832, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 6921
Event: time 1699543733.490832, type 3 (EV_ABS), code 0 (ABS_X), value 10693
Event: time 1699543733.490832, type 3 (EV_ABS), code 1 (ABS_Y), value 6921
Event: time 1699543733.490832, -------------- SYN_REPORT ------------
Event: time 1699543733.530811, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10609
Event: time 1699543733.530811, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 6780
Event: time 1699543733.530811, type 3 (EV_ABS), code 0 (ABS_X), value 10609
Event: time 1699543733.530811, type 3 (EV_ABS), code 1 (ABS_Y), value 6780
Event: time 1699543733.530811, -------------- SYN_REPORT ------------
Event: time 1699543733.580783, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10555
Event: time 1699543733.580783, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 6683
Event: time 1699543733.580783, type 3 (EV_ABS), code 0 (ABS_X), value 10555
Event: time 1699543733.580783, type 3 (EV_ABS), code 1 (ABS_Y), value 6683
Event: time 1699543733.580783, -------------- SYN_REPORT ------------
Event: time 1699543733.620790, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1699543733.620790, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1699543733.620790, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1699543733.620790, -------------- SYN_REPORT ------------

The docker-compose.yml looks like this:

services:
  chromium:
    #command: http://localhost:5000
    command: https://www.cssscript.com/demo/momentum-scrolling-smooth/
    container_name: chromium
    depends_on:
      weston:
        condition: service_started
    device_cgroup_rules:
    - c 199:* rmw
    - c 226:* rmw
    environment:
    - MACHINE=
    image: torizon/arm64v8-chromium:3
    network_mode: host
    platform: linux/arm64
    restart: unless-stopped
    security_opt:
    - seccomp:unconfined
    deploy:
      resources:
        limits:
          cpus: '3.0'
          memory: 2g
        reservations:
          cpus: '1.0'
          memory: 1g
    cpuset: 4,5
    #shm_size: 2g
    volumes:
    - /tmp:/tmp:rw
    - /dev/:/dev/:rw
  weston:
    cap_add:
    - CAP_SYS_TTY_CONFIG
    container_name: weston
    device_cgroup_rules:
    - c 4:* rmw
    - c 13:* rmw
    - c 199:* rmw
    - c 226:* rmw
    environment:
      ACCEPT_FSL_EULA: '1'
      ENABLE_VNC: '1'
    image: torizon/weston-vivante:3
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 2G
        reservations:
          cpus: '1.0'
          memory: 256M
    network_mode: host
    platform: linux/arm64
    restart: unless-stopped
    volumes:
    - /tmp:/tmp:rw
    - /dev:/dev:rw
    - /run/udev:/run/udev:rw
    - /etc/udev/rules.d:/etc/udev/rules.d:rw
version: '3'

Do you have any suggestions on how to approach debugging or see any issues in our configuration?

Best regards,

Greetings @bgo,

I don’t have any immediate ideas on what the issue could be, but let’s try and narrow down the possible cause. Off the top of my head. First of all how sure are you the issue is with weston-vivante? For example if you just open just a Weston container and then using touch open the weston-terminal program and move that around with touch, is that responsive?

Also when this lagging is happening what is the CPU usage on your system look like? Maybe there is a high CPU usage that is causing things like the touch processing to slow down.

Another thing I noticed is that for the chromium container image you’re using torizon/arm64v8-chromium:3. Why is that? Our documentation says to use torizon/chromium:3.

Finally do you have any other kind of touchscreen to test? Just to see if the issue is possibly with this touchscreen specifically?

Best Regards,
Jeremias

1 Like

Hi @jeremias.tx ,

thank you for your quick reply!

I don’t have any immediate ideas on what the issue could be, but let’s try and narrow down the possible cause.

Much appreciated! I am a bit at a loss right now and have no clue where to start looking for the cause of the loss of the flick-gesture, but I am supposed to fix it somehow …

Looking at htop while scrolling aggressively I do not see a CPU peak that might cause any issues. At max it pikes up to 54% for a very brief moment, but on average it stays below 20%:

This is what it looks like on idle:

So in my opinion the system looks very healthy to me. Yet I get the impression that scrolling in chromium is delayed by roughly half a second.

Another thing I noticed is that for the chromium container image you’re using torizon/arm64v8-chromium:3 . Why is that? Our documentation says to use torizon/chromium:3 .

We do not have any reason to use torizon/arm64v8-chromium:3, I thought it would be smaller in size, but just checking it made me realize that the torizon/chromium:3 has the same size for arm64. I will switch to the documentation version immediately.

Finally do you have any other kind of touchscreen to test? Just to see if the issue is possibly with this touchscreen specifically?

I will set up a system for comparison using an Ixora V1.2A and a 10.1" Capacitive LVDS V1.0A and let you know if the issue is only in our custom setup.

Best regards,
Bernhard

Hi @jeremias.tx ,

after settings up the ixora V1.2A together with the 10.1" Capacitive Touch LVDS V1.0A I made a quick test with the system:

  • Apalis iMX8QM 4GB IT
  • Ixora V1.2A
  • 10.1" Capacitive Touchscreen LVDS V1.0A
  • TorizonCore 5.7 build 17
  • torizon/weston-vivante:2.8
  • torizon/chromium:3.0

I run a evtest to compare the amount of events send by the touch controller

root@apalis-imx8-07308275:~# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      sc-powerkey
/dev/input/event1:      Atmel maXTouch Touchscreen
Select the device event number [0-1]: 1
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "Atmel maXTouch Touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max     1279
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max      799
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max       15
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     1279
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      799
    Event code 55 (ABS_MT_TOOL_TYPE)
      Value      0
      Min        0
      Max       15
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
    Event code 59 (ABS_MT_DISTANCE)
      Value      0
      Min        0
      Max        1
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 927
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 482
Event: time 1696341199.1696341199, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 927
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 482
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 925
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 476
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 925
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 476
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 475
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 475
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 473
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 473
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 472
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 472
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 924
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 470
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 924
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 470
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 468
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 468
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 466
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 466
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 464
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 464
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 462
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 462
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 461
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 461
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 459
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 459
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 457
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 457
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 927
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 455
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 927
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 455
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 454
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 454
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 928
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 452
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 928
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 452
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 929
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 451
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 929
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 451
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 930
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 449
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 930
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 449
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 931
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 448
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 931
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 448
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 932
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 447
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 932
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 447
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 446
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 446
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 933
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 445
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 933
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 445
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 934
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 444
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 934
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 444
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 935
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 443
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 935
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 443
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 442
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 442
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 936
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 441
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 936
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 441
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 937
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 440
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 937
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 440
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 938
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 439
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 938
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 439
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 939
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 438
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 939
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 438
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 940
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 940
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 437
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 437
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 941
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 436
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 941
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 436
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 942
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 942
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 435
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 435
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 943
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 434
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 943
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 434
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 944
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 433
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 944
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 433
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 945
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 945
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 432
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 432
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 946
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 946
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 431
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 431
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 947
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 947
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 430
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 430
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 429
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 429
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 948
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 948
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 428
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 428
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 949
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 949
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 427
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 427
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 950
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 0 (ABS_X), value 950
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 426
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 1 (ABS_Y), value 426
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341199.1696341199, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1696341199.1696341199, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1696341199.1696341199, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 934
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 470
Event: time 1696341201.1696341201, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 934
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 470
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 465
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 465
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 464
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 464
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 463
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 463
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 462
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 462
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 936
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 936
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 461
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 461
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 460
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 460
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 459
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 459
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 458
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 458
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 937
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 937
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 457
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 457
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 456
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 456
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 938
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 455
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 938
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 455
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 454
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 454
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 453
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 453
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 939
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 452
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 939
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 452
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 451
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 451
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 940
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 450
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 940
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 450
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 449
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 449
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 448
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 448
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 941
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 941
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 447
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 1 (ABS_Y), value 447
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 942
Event: time 1696341201.1696341201, type 3 (EV_ABS), code 0 (ABS_X), value 942
Event: time 1696341201.1696341201, -------------- SYN_REPORT ------------

The atmel is firing more events in the same second, and only firing every second. The system is 30% occupied during scrolling - the flick-gesture is working. It is not buttery smooth, but it works.
image

I guess the issue is indeed related to our custom touchscreen.

Best regards,

I updated the comparison system to Torizon OS 6.4, but at first I tried to use the previous overlay files - which do no longer apply! So after switching to the correct overlay apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dts the containers start. I can now confirm that the flick-gesture is working with the following setup:

  • Apalis iMX8QM 4GB IT
  • Ixora V1.2A
  • 10.1" Capacitive Touchscreen LVDS V1.0A
  • Torizon OS 6.4 (build 5)
  • torizon/weston-vivante:3
  • torizon/chromium:3

I guess it is now clear that the cause for the interrupted or misbehaving flick-gesture has to be part of our custom setup. I will try to replace the touch driver and let you know if this changed something.
Thanks again!

Best regards,

Thank you for testing this. Given what you’ve observed it really does seem something specific to your display and/or setup here. I had a suspicion earlier since I never saw such issues with our evaluation touchscreens before.

Unfortunately there’s not much else I can suggest given I’m not familiar with this touchscreen. Though do please let me know how it goes for you.

Best Regards,
Jeremias

1 Like

Hi @jeremias.tx ,

further testing against the comparison system (Toradex stack with Ixora and 10.1" LVDS) and analyzing the evtest output, I observed that the events that I suppose are interpreted as flick are within completely different time frames for our custom setup. The atmel does this by sending about 5 to 7 events within a time frame of less than 35ms, whereas our ili2511 takes up to 350ms to report the events for the same movement on touchscreen. Sometimes it just so happens that it drops below 300ms and then it works. So I tried to figure out how I could get the events triggered more often, but I could not figure it out in half a day (driver code is still new to me), so I went back to looking for updated drivers and decided to go with the implementation of the 5.17 linux kernel ili210x.c (v5.17)
This update changed a lot and the evtest shows that the events are now triggering every ~16ms instead of ~40ms. As a result the flick-gesture is now working!

Thanks again for looking into my issue!

Best regards,

Interesting, guess it really was a software driver issue then. Well fortunately it seems like it got fixed in newer versions. Glad you were able to resolve this.

Best Regards,
Jeremias