Merge lp:~afrantzis/mir/consume-only-not-rendered-buffers into lp:mir
Status: | Rejected |
---|---|
Rejected by: | Alexandros Frantzis |
Proposed branch: | lp:~afrantzis/mir/consume-only-not-rendered-buffers |
Merge into: | lp:mir |
Diff against target: |
365 lines (+82/-31) 11 files modified
examples/render_overlays.cpp (+11/-1) include/platform/mir/graphics/renderable.h (+2/-0) include/test/mir_test_doubles/fake_renderable.h (+10/-1) include/test/mir_test_doubles/mock_renderable.h (+1/-0) include/test/mir_test_doubles/stub_renderable.h (+13/-0) src/server/compositor/multi_threaded_compositor.cpp (+23/-27) src/server/scene/basic_surface.cpp (+8/-0) src/server/scene/basic_surface.h (+3/-0) src/server/scene/surface_stack.cpp (+3/-0) tests/unit-tests/compositor/test_multi_threaded_compositor.cpp (+2/-2) tests/unit-tests/graphics/android/test_hwc_device.cpp (+6/-0) |
To merge this branch: | bzr merge lp:~afrantzis/mir/consume-only-not-rendered-buffers |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Daniel van Vugt | Needs Fixing | ||
Kevin DuBois (community) | Needs Fixing | ||
Alan Griffiths | Needs Information | ||
Review via email: mp+216725@code.launchpad.net |
Description of the change
compositor: Only consume buffers that have not been rendered recently to unblock client eglSwapBuffers
Mix the best aspects of our various approaches to provide non-blocking swap buffers.
This MP uses the buffer consuming thread at the MultiThreadedCo
Like 1hz-rendering-
Unmerged revisions
- 1569. By Alexandros Frantzis
-
tests: Fix android build
- 1568. By Alexandros Frantzis
-
compositor: Only consume buffers that have not been rendered recently to unblock client eglSwapBuffers
I've nothing specifically against this MP but we seem to have a flurry of MPs trying to balance incompatible requirements. Vis:
1. The compositor can always get a buffer for a surface
2. A client can always swap buffers without blocking
3. We don't drop frames
4. There's a finite limit to how many buffers we allocate
As it is logically impossible to do all of these things some requirement has to be relaxed. Which is it?