-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
The root cause is the race condition.
Problem
Application doesn't show in order.
Situation:
- Application A requests activateSurface.
- Window Manager will change the size of A and emit syncDraw to A
- Application B requests activateSurface right after 1
- Window Manager will change A invisible and emit syncDraw to B
- Application A is slow because if A spends time in syncDraw context.
- Application B returns endDraw
- Window Manager change B visible. Window Manager set surface visible in endDraw.
- Application A returns endDraw
- Winodw Manager change A visible
Current Window Manager doesn't change the order of surface in layer, so if A is over B by z-order, A will be displayed after B is displayed.
So Winodow Manager has to handle "task". Window Manager has to block the other request until the task is finished. Of course it is better that WM can cancel the current task when new high priority request comes while transition
# | Subject | Branch | Project | Status | CR | V |
---|---|---|---|---|---|---|
14645,1 | Refactor: Integrate rework handles by application | master | apps/agl-service-windowmanager-2017 | Status: ABANDONED | 0 | +1 |
14659,2 | Refactor: Integrate rework handles by application | master | apps/agl-service-windowmanager-2017 | Status: MERGED | +2 | +1 |