touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #97384
[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