← Back to team overview

touch-packages team mailing list archive

[Bug 1486341] Re: Touch scrolling is stuttery under Unity8 (but only while you're touching it)

 

I also wonder if the unity8 shell would benefit from applying the same
setting to unity-system-compositor?...

** Description changed:

  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
+    https://bugreports.qt.io/browse/QTBUG-40167
  both suggest that the Qt input resampling introduced by Jolla is causing stuttering...
+ 
+ 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)

** Description changed:

  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...
+ 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)

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

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

Status in QtMir:
  New
Status in qtmir package in Ubuntu:
  New
Status in unity8 package in Ubuntu:
  New

Bug description:
  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)

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


References