Mir

Merge lp://qastaging/~kdub/mir/detect-demo-decorations into lp://qastaging/mir

Proposed by Kevin DuBois
Status: Work in progress
Proposed branch: lp://qastaging/~kdub/mir/detect-demo-decorations
Merge into: lp://qastaging/mir
Prerequisite: lp://qastaging/~kdub/mir/fix-1299977-take3
Diff against target: 334 lines (+174/-11)
10 files modified
examples/demo-shell/CMakeLists.txt (+6/-2)
examples/demo-shell/demo_compositor.cpp (+38/-6)
examples/demo-shell/demo_compositor.h (+5/-2)
examples/demo-shell/demo_shell.cpp (+1/-1)
include/test/mir_test_doubles/mock_display_buffer.h (+2/-0)
include/test/mir_test_doubles/mock_gl.h (+1/-0)
tests/mir_test_doubles/mock_gl.cpp (+6/-0)
tests/unit-tests/CMakeLists.txt (+2/-0)
tests/unit-tests/examples/CMakeLists.txt (+5/-0)
tests/unit-tests/examples/test_demo_compositor.cpp (+108/-0)
To merge this branch: bzr merge lp://qastaging/~kdub/mir/detect-demo-decorations
Reviewer Review Type Date Requested Status
Daniel van Vugt Needs Resubmitting
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+227396@code.qastaging.launchpad.net

Commit message

demo shell: detect when decorations for the windows are on screen. When a decoration that can't be represented in the optimized abstraction needs to be painted, render using opengl. This makes the --disable-overlays false option on android not look so bad.

Description of the change

demo shell: detect when decorations for the windows are on screen. When a decoration that can't be represented in the optimized abstraction needs to be painted, render using opengl. This makes the --disable-overlays false option on android not look so bad. More work is still needed to detect when only the grey background is visible before the demo shell looks good when android is transitioning back and forth from gl to overlay. (and change the default to overlay on by default)

Note how the demo compositor code is not thinking about what sort of hardware optimization would go on, only if it could represent what it wants to paint as a RenderableList. On the mesa platform, an exactly fullscreen client would be bypassed. On android, a fullscreen client and larger would be optimized as an overlay.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The prereq branch is blocked and I think should not land. So this needs to not depend on it.

Also, more generally we should not treat decorations alone. Doing free-form GL rendering outside of surface rectangles encompasses much more than decorations. For example, resize highlights, FPS overlays and other temporary effect/animation rendering.

The alternate solution we're also working toward is for *everything* to be in the scene graph. When that happens, detection of what's on screen is a graph traversal exercise.

So,
  (1) Resubmit to not depend on the parent branch.
  (2) Don't treat decorations as the special case, but rather any free-form rendering needs to be detected (or just flagged as a bool somewhere).
  (3) Consider continuing on the road toward "everything's in the scene graph" so it can just be done as a graph traversal.

review: Needs Resubmitting
Revision history for this message
Kevin DuBois (kdub) wrote :

The depends-on-branch was close to landing, so I just wanted to pipeline this on Friday. Seeing as that branch was blocked, no point reviewing this until the base branch's block is resolved.

Unmerged revisions

1699. By Kevin DuBois

make a type richer

1698. By Kevin DuBois

remerge in fix base branch, because bzr cant tfigure out the history here apparently

1697. By Kevin DuBois

merge devel

1696. By Kevin DuBois

test to pass

1695. By Kevin DuBois

work through some problems to see the test fail

1694. By Kevin DuBois

make it possible to statically link the test binary to the demo shell code

1693. By Kevin DuBois

add test that checks the demo shell compositor

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches