aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Salido <salidoa@google.com>2017-09-21 15:32:22 -0700
committerAdrian Salido <salidoa@google.com>2017-09-21 15:38:16 -0700
commit228ca6d1182a350e68242e1837c32d258fb17fee (patch)
tree012f4bc5280a8464461c9df244861d54f1f95f69
parent78beee0ecd311706c7bb0cbef0e6e87286903fd6 (diff)
downloaddrm_hwcomposer-228ca6d1182a350e68242e1837c32d258fb17fee.tar.gz
drm_hwcomposer: reorder source layers according to zorder
Precomp layers may be added to the back at different points which may cause elements to be unsorted. Make sure that these are sorted after provisioning planes to ensure right composition based on zorder. Bug: 65587393 Change-Id: Ica6d12093818341eaeca6c63735c558511679f7b Signed-off-by: Adrian Salido <salidoa@google.com>
-rw-r--r--drmdisplaycomposition.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/drmdisplaycomposition.cpp b/drmdisplaycomposition.cpp
index 293160b..0f8084b 100644
--- a/drmdisplaycomposition.cpp
+++ b/drmdisplaycomposition.cpp
@@ -379,6 +379,9 @@ int DrmDisplayComposition::Plan(SquashState *squash,
if (!i.plane())
continue;
+ // make sure that source layers are ordered based on zorder
+ std::sort(i.source_layers().begin(), i.source_layers().end());
+
std::vector<DrmPlane *> *container;
if (i.plane()->type() == DRM_PLANE_TYPE_PRIMARY)
container = primary_planes;