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:32:22 -0700
commit8fc5634650ccdeb95dc98e0b421dee3ff6edf154 (patch)
tree3619f64665856213a0facf65588efa27fd7d1660
parentd6ad94289ec909359d51eb1b605680cb5f223111 (diff)
downloaddrm_hwcomposer-8fc5634650ccdeb95dc98e0b421dee3ff6edf154.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 949f4a3..b7f8d1a 100644
--- a/drmdisplaycomposition.cpp
+++ b/drmdisplaycomposition.cpp
@@ -375,6 +375,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;