Compositing with invisible surfaces
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alberto Aguirre | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
We're encountering some strange compositing behaviour with the keyboard when a semi-transparent image is used for the key magnifier and the extended key popover. When they overlap the top of the keyboard their composited result is much darker than it should be (see composite_
I believe this might be because Mir is compositing with the invisible layer that the shell places over applications to darken them when the dash is displayed via a swipe from the left. This would seem to account for the right amount of darkness added (see composite_
I also tested with a pure white background at 10% opacity, displayed over a white app (white-test.jpg), which shows the same effect, but makes it clear that compositing is happening as the "Activity" text can be read through the overlay; so it's not just being composited against a black surface or something, but seemingly with something else that is partially transparent and the overlay from the shell would seem the most likely candidate.
We're likely to work around this as much as possible in the keyboard by making the main popover background fully opaque for the time being, but this still causes issues for the drop shadow surrounding the popover.
Related branches
- Alexandros Frantzis (community): Approve
- Andreas Pokorny (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 187 lines (+41/-29)6 files modifiedexamples/demo-shell/demo_renderer.cpp (+11/-11)
examples/eglcounter.cpp (+3/-2)
examples/eglflash.c (+21/-11)
examples/egltriangle.c (+3/-2)
src/server/compositor/gl_renderer.cpp (+2/-2)
tests/unit-tests/compositor/test_gl_renderer.cpp (+1/-1)
tags: | added: rtm14 |
description: | updated |
Changed in mir: | |
assignee: | nobody → Alberto Aguirre (albaguirre) |
milestone: | none → 0.3.0 |
importance: | Undecided → High |
status: | New → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in mir (Ubuntu): | |
status: | New → Fix Released |
importance: | Undecided → High |