Public bug reported:

Touch scrolling is stuttery under Unity8 (but only while you're touching
it).

Turns out the problem is Qt's built-in input resampling introduced in Qt
5.4 (commit 6dc8f47bb05a8acb3cbcc697e0dc05356a01d4cf). Turning it off in
the unity8 process (env QML_NO_TOUCH_COMPRESSION=1) fixes the touch
scrolling smoothness problem for clients like unity8-dash.

I suspected this would be the case. It's possible the Qt resampling 
implementation doesn't work when nested. That would be unsurprising, having 
implemented Mir's input resampling I know that can be a problem. Although Mir's 
input resampling is designed in such a way that performance unaffected by 
nesting. However the below test case and also:
   https://bugreports.qt.io/browse/QTBUG-40167
both suggest that the Qt input resampling introduced by Jolla is causing 
stuttering, particularly when nested in a situation where the incoming touch 
events are already throttled...

Measurements from arale:

restart unity8-dash MIR_CLIENT_PERF_REPORT=log
tail -f ~/.cache/upstart/unity8-dash.log

[1439957791.298680] perf: Scopes: 52.42 FPS, render time 17.90ms, buffer lag 
39.37ms (3 buffers)
[1439957792.303939] perf: Scopes: 54.72 FPS, render time 17.07ms, buffer lag 
37.57ms (3 buffers)
[1439957793.316036] perf: Scopes: 55.33 FPS, render time 16.82ms, buffer lag 
36.90ms (3 buffers)
[1439957794.329848] perf: Scopes: 56.26 FPS, render time 16.21ms, buffer lag 
37.69ms (3 buffers)
[1439957795.335884] perf: Scopes: 52.68 FPS, render time 18.05ms, buffer lag 
38.87ms (3 buffers)
[1439957796.343125] perf: Scopes: 51.63 FPS, render time 18.03ms, buffer lag 
40.15ms (3 buffers)
[1439957797.360229] perf: Scopes: 54.08 FPS, render time 17.41ms, buffer lag 
38.04ms (3 buffers)
[1439957798.370706] perf: Scopes: 54.45 FPS, render time 17.18ms, buffer lag 
37.99ms (3 buffers)
[1439957799.401308] perf: Scopes: 53.39 FPS, render time 17.79ms, buffer lag 
37.43ms (3 buffers)

restart unity8 QML_NO_TOUCH_COMPRESSION=1
restart unity8-dash MIR_CLIENT_PERF_REPORT=log
tail -f ~/.cache/upstart/unity8-dash.log

[1439957936.543370] perf: Scopes: 59.64 FPS, render time 15.52ms, buffer lag 
34.48ms (3 buffers)
[1439957937.543547] perf: Scopes: 59.00 FPS, render time 16.36ms, buffer lag 
34.26ms (3 buffers)
[1439957938.571699] perf: Scopes: 59.33 FPS, render time 16.26ms, buffer lag 
34.22ms (3 buffers)
[1439957939.572860] perf: Scopes: 59.94 FPS, render time 15.76ms, buffer lag 
34.32ms (3 buffers)
[1439957940.581339] perf: Scopes: 62.50 FPS, render time 14.68ms, buffer lag 
33.75ms (3 buffers)
[1439957941.594696] perf: Scopes: 59.23 FPS, render time 14.81ms, buffer lag 
35.83ms (3 buffers)
[1439957942.597224] perf: Scopes: 61.87 FPS, render time 14.64ms, buffer lag 
33.96ms (3 buffers)
[1439957943.612315] perf: Scopes: 61.08 FPS, render time 14.59ms, buffer lag 
34.39ms (3 buffers)
[1439957944.625835] perf: Scopes: 60.21 FPS, render time 15.79ms, buffer lag 
34.28ms (3 buffers)

** Affects: qtmir
     Importance: Undecided
         Status: New

** Affects: qtmir (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: unity8 (Ubuntu)
     Importance: Undecided
         Status: New

** Also affects: qtmir (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: unity8 (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1486341

Title:
  Touch scrolling is stuttery under Unity8 (but only while you're
  touching it)

To manage notifications about this bug go to:
https://bugs.launchpad.net/qtmir/+bug/1486341/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to