Activity log for bug #1486341

Date Who What changed Old value New value Message
2015-08-19 04:26:48 Daniel van Vugt bug added bug
2015-08-19 04:27:04 Daniel van Vugt bug task added qtmir (Ubuntu)
2015-08-19 04:27:13 Daniel van Vugt bug task added unity8 (Ubuntu)
2015-08-19 04:35:38 Daniel van Vugt 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... 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) 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... 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)
2015-08-19 04:40:15 Daniel van Vugt 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... 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) 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)
2015-08-19 05:28:03 Daniel van Vugt 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) 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:    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)
2015-08-19 05:29:08 Daniel van Vugt description 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:    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) 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. 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)
2015-08-19 08:09:26 Daniel van Vugt description 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. 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) 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. The below test case and also:   https://bugreports.qt.io/browse/QTBUG-40167 (maybe unrelated) 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)
2015-08-19 08:11:51 Launchpad Janitor qtmir (Ubuntu): status New Confirmed
2015-08-19 08:11:51 Launchpad Janitor unity8 (Ubuntu): status New Confirmed
2015-08-19 08:11:53 K1773R bug added subscriber K1773R
2015-08-25 06:48:17 Daniel van Vugt tags performance
2015-08-31 07:29:25 Daniel van Vugt summary Touch scrolling is stuttery under Unity8 (but only while you're touching it) [performance] Touch scrolling is stuttery under Unity8 (but only while you're touching it)
2015-09-30 09:39:16 Daniel van Vugt unity8 (Ubuntu): assignee Daniel van Vugt (vanvugt)
2015-09-30 09:39:18 Daniel van Vugt unity8 (Ubuntu): status Confirmed In Progress
2015-09-30 09:46:40 Daniel van Vugt branch linked lp:~vanvugt/unity8/more-smooth-less-lag
2015-09-30 09:48:28 Daniel van Vugt qtmir: status New Won't Fix
2015-09-30 09:48:32 Daniel van Vugt qtmir (Ubuntu): status Confirmed Won't Fix
2015-10-01 05:49:23 Daniel van Vugt bug task deleted qtmir
2015-10-26 13:02:54 Michał Sawicz unity8 (Ubuntu): status In Progress Fix Released
2016-04-11 19:48:25 Michael bug added subscriber Michael