Double buffering is only smooth while you're touching it
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
New
|
Undecided
|
Daniel van Vugt | ||
QtMir |
New
|
Undecided
|
Unassigned | ||
mir (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
qtmir (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
On some devices (mako at least) it's possible to force double buffering and it will often keep up:
restart unity8 QML_NO_
Curiously however it only keeps up smoothly (eg. during a dash scroll) while you're touching the screen. If you lift off or fling the dash then it immediately stutters, quite badly.
So the issue is not that the device can't keep up with double buffering. It seems more like we're not keeping the kernel sufficiently awake and it's clocking down prematurely, as soon as we're not touching it. Certainly adjusting the variables in:
/sys/
it is possible to raise the performance and minimum frequency to make double buffering smooth.
The challenge of this bug is to find a way in Mir/QtMir to keep the kernel more awake so it doesn't clock down when we need smooth animations and we're not touching the screen.
Could be a simple matter of increasing our concurrency. If that's not kept high enough then the delay between context switches likely becomes unacceptably high. And each frame requires at least 4 context switches (USC -> Unity8 -> app -> Unity8 -> USC).