** Description changed:

  Touch scrolling is stuttery under Unity8 (but only while you're touching
  it).
+ 
+ I noticed that Unity8 is smooth in some parts and stutters in others.
+ Turns out the smooth parts of Unity8 like the indicators pull-down and
+ app switcher are the parts that don't have to run as clients of the
+ nested server. I also noticed that those stuttering clients (like the
+ dash) of the nested server only stutter while you're touching them. They
+ animate smoothly if you fling them lifting your finger off, but stutter
+ while they have to track your finger.
  
  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:
+ 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 is 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)

** Description changed:

  Touch scrolling is stuttery under Unity8 (but only while you're touching
  it).
  
  I noticed that Unity8 is smooth in some parts and stutters in others.
  Turns out the smooth parts of Unity8 like the indicators pull-down and
  app switcher are the parts that don't have to run as clients of the
  nested server. I also noticed that those stuttering clients (like the
  dash) of the nested server only stutter while you're touching them. They
  animate smoothly if you fling them lifting your finger off, but stutter
  while they have to track your finger.
  
  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 is unaffected by 
nesting. However the below test case and also:
+ 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 is unaffected by 
nesting. 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)

-- 
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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to