diff options
author | Adrian Salido <salidoa@google.com> | 2017-09-21 15:32:22 -0700 |
---|---|---|
committer | Adrian Salido <salidoa@google.com> | 2017-09-21 15:32:22 -0700 |
commit | 8fc5634650ccdeb95dc98e0b421dee3ff6edf154 (patch) | |
tree | 3619f64665856213a0facf65588efa27fd7d1660 /drmdisplaycomposition.cpp | |
parent | d6ad94289ec909359d51eb1b605680cb5f223111 (diff) | |
download | drm_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>
Diffstat (limited to 'drmdisplaycomposition.cpp')
-rw-r--r-- | drmdisplaycomposition.cpp | 3 |
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; |