Merge lp://qastaging/~vanvugt/mir/earlier-release into lp://qastaging/mir
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2862 |
Proposed branch: | lp://qastaging/~vanvugt/mir/earlier-release |
Merge into: | lp://qastaging/mir |
Diff against target: |
164 lines (+107/-0) 4 files modified
src/server/compositor/buffer_queue.cpp (+17/-0) src/server/compositor/buffer_queue.h (+1/-0) tests/integration-tests/test_buffer_scheduling.cpp (+54/-0) tests/unit-tests/compositor/test_buffer_queue.cpp (+35/-0) |
To merge this branch: | bzr merge lp://qastaging/~vanvugt/mir/earlier-release |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Daniel van Vugt | Needs Information | ||
Kevin DuBois (community) | Approve | ||
Cemil Azizoglu (community) | Approve | ||
Alan Griffiths | Approve | ||
Chris Halse Rogers | Approve | ||
Review via email:
|
Commit message
Reintroduce very short* buffer holds so that a starving client can
get a new buffer to render to much sooner, and potentially appear
much smoother (LP: #1480164)
In visual terms this is the equivalent of adding an extra buffer to
the queue without actually needing an extra buffer. It also means
we're now much more likely to be able to keep up using a lower
number of buffers (and hopefully can re-enable double buffering
eventually).
As an added bonus, this also means a compositor can better predict
where in its render loop we're going to block to send responses to
clients (while LP: #1395421 is not resolved), allowing it to defer
or move buffer releases to another thread so as to not slow down
compositing.
* "very short" means for the render time only (often 1ms or less),
rather than the full frame interval.
I suspect we need an equivalent test case added to kdub's new suite too?... But it's now Friday night. Later.