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.

Signed-off-by: Adrian Salido <[email protected]>
---
 drmdisplaycomposition.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drmdisplaycomposition.cpp b/drmdisplaycomposition.cpp
index 293160bfd012..0f8084b39706 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;
-- 
2.14.1.821.g8fa685d3b7-goog

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to